我的输入是:

{
  "_id": 722,
  "mappings": [
    {
      "name": "sercan",
      "test2": {
        "code": "PI"
      },
      "codes": {
        "individual": "false",
        "servicetype": "APPART"
      }
    }
  ]
}


查询是:

db.myCollection.find({
                      "mappings.codes":
                                       { "individual" : "false",
                                         "servicetype" : "APPART"
                                       }
                     })


返回条目。但是下面的查询不是:

db.myCollection.find({
                      "mappings.codes":
                                       {
                                         "servicetype" : "APPART" ,
                                         "individual" : "false"
                                       }
                     })


如您所见,唯一的代码顺序是不同的。我如何处理此问题?

提前致谢

最佳答案

在您的收藏夹中,mappings是一个数组。因此,您需要使用$elemMatch。尝试这个:

db.myCollection.find({"mappings":{$elemMatch:{"test.codes":{"individual":"false","servicetype":"APPART"}}}}).pretty()

09-07 11:28