【发布时间】:2023-03-17 21:02:02
【问题描述】:
我要比较
requested_completion_utc > status_changed_utc.time 和 status_changed_utc.status=6,
其中status_changed_utc.time 来自具有status_changed_utc.status = 6 的记录。
status_changed_utc.time 是嵌套的,requested_completion_utc 在数组之外。如何比较嵌套字段和外部字段。
{
"_id": { "oid": "5ce726ae92e2247db561a2f2" },
"created_utc": { "date": "2019-05-23T23:03:10.000+0000" },
"requested_completion_utc": { "date": "2019-05-23T00:00:00.000+0000" },
"status_changed_utc": [
{
"status": 1,
"time": { "date": "2019-05-23T23:03:10.000+0000" }
},
{
"status": 2,
"time": { "date": "2019-05-23T23:05:03.000+0000" }
},
{
"status": 4,
"time": { "date": "2019-05-23T23:05:06.000+0000" }
},
{
"status": 5,
"time": { "date": "2019-05-23T23:05:07.000+0000" }
},
{
"status": 6,
"time": { "date": "2019-05-23T23:05:09.000+0000" }
}
]
},
{
"_id": { "oid": "5ce726ae92e2247db561a2f3" },
"created_utc": { "date": "2019-05-23T23:03:10.000+0000" },
"requested_completion_utc": { "date": "2019-05-25T06:00:00.000+0000" },
"status_changed_utc": [
{
"status": 1,
"time": { "date": "2019-05-23T23:03:10.000+0000" }
},
{
"status": 2,
"time": { "date": "2019-05-23T23:05:03.000+0000" }
},
{
"status": 3,
"time": { "date": "2019-05-23T23:05:06.000+0000" }
},
{
"status": 4,
"time": { "date": "2019-05-25T05:05:07.000+0000" }
},
{
"status": 6,
"time": { "date": "2019-05-25T05:55:09.000+0000" }
}
]
}
我尝试过这样做,但没有任何反应
db.test.find(
{
$expr: {
$gt: [
"$requested_completion_utc",
{"$status_changed_utc.time", "$status_changed_utc.status": 6}
]
}
}
);
【问题讨论】:
标签: mongodb mongodb-query