在特定数组中的Mongo find()

时间:2018-10-02 21:03:02

标签: mongodb mongodb-query

我正在尝试查找具有特定路径\父级的项目。

示例数据:

文档A:

{
  "traces": [{
      "act": {
        "account": "555",
        "name": "Bob"
      }
    },
    {
      "act": {
        "account": "666",
        "name": "Mary"
      }
    }    
  ],
  "other": [{
      "act": {
        "account": "555",
        "volume": "PPPPP"
      }
    }
  ]
}

文档B:

{
  "traces": [
    {
      "act": {
        "account": "666",
        "name": "Mary"
      }
    }    
  ],
  "other": [{
      "act": {
        "account": "555",
        "volume": "PPPPP"
      }
    }
  ]
}

因此,当搜索上述两个文档时,我希望搜索匹配文档A但不匹配文档B

如果我使用以下find语句:

db.action_traces.find({ "act.account" : { $in: [ "555" ]}).limit().forEach(function(result){
print(.....);
});

似乎将匹配A和B,因为两者都在匹配的“其他”部分下有一个元素。

如何指定只匹配迹线。{数组中的任何元素} .act.account?

0 个答案:

没有答案