【问题标题】:Mongo Query for 2 values in array list in a document fieldMongo查询文档字段中数组列表中的2个值
【发布时间】:2019-01-14 20:47:21
【问题描述】:

我在一个集合中有一个文档,该文档有一个名为“myList”的字段,它有列表项,我需要能够查询具有“good”和“doneBy”字段的“status”和一个值的集合文档“myList”字段中的“system”:

[collection].myList
[
    {
    "location" : "3826487.pdf",
    "status" : "good",
    "time" : ISODate("2017-06-27T20:03:46.512Z"),
    "reportIdx" : 0,
    "doneBy" : "System"
    },
    {
    "location" : "rt-0.pdf",
    "status" : "bad",
    "time" : ISODate("2017-06-28T16:24:16.559Z"),
    "reportIdx" : 0,
    "doneBy" : "System"
    }
]

它应该返回列表项由该列表中的第一个限定的所有文档。即使第二个列表项有“坏”,它也应该返回这个集合文档,其中“myList”具有这两个列表项。

我发现搜索其中一个字段会是这样,但如何同时进行,我不确定语法。

 db.getCollection('[collection]').find({myList  : { $elemMatch : { "status" : "good" }}}) 

【问题讨论】:

    标签: mongodb list field


    【解决方案1】:

    我相信我找到了它:

     db.getCollection('[collection]')find({ myList: 
     { $all: [ 
            {$elemMatch : { "status" : "good" }}, 
            {$elemMatch : {"doneBy" : "System"}} 
             ] 
      } })
    

    【讨论】:

      猜你喜欢
      • 2017-02-19
      • 2015-03-10
      • 2022-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2015-01-31
      相关资源
      最近更新 更多