【问题标题】:Mongodb: Get Documents where ALL embedded Documents satisfy queryMongodb:获取所有嵌入文档都满足查询的文档
【发布时间】:2016-05-17 07:26:42
【问题描述】:

我有以下疑问:

db.MyData.find( { "SubItems.EndDate" : { $lte : new Date() } })

它返回我的数据中的任何文档,其中嵌入的 SubItems EndDate 之一是过去的,但是我如何更改它以仅在其子项的 all 满足查询时才返回文档

在下面的示例中,我的原始查询将返回两个文档,但我只希望它返回第二个。

{
    "_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"),
        },
    ]
}

【问题讨论】:

标签: mongodb


【解决方案1】:

看到这个question之后

我设法通过以下查询实现了我所需要的:

edb.Bookings.find( { "ItineraryItems.EndDate" : { $not : {  $gt : new Date() } } })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2018-03-20
    相关资源
    最近更新 更多