我有以下查询:
db.MyData.find( { "SubItems.EndDate" : { $lte : new Date() } })
在我的数据中返回其中一个嵌入的SubItems EndDate过去的任何文档,但是如果所有其SubItems满足查询,我该如何更改它以返回文档
在下面的示例中,我的原始查询将返回两个文档,但我只希望它返回第二个文档。
{
"_id" : 1,
"name" : "item1"
"SubItems" : [
{
"EndDate": ISODate("2016-10-01T00:00:00.000Z"),
},
{
"EndDate": ISODate("2016-04-01T00:00:00.000Z"),
},
]
}
{
"_id" : 2,
"name" : "item2"
"SubItems" : [
{
"EndDate": ISODate("2016-02-01T00:00:00.000Z"),
},
{
"EndDate": ISODate("2016-03-01T00:00:00.000Z"),
},
]
}
答案 0 :(得分:1)
看到此question
后我设法通过以下查询实现了我所需要的:
edb.Bookings.find( { "ItineraryItems.EndDate" : { $not : { $gt : new Date() } } })