MongoDB - 从数组中的多个对象按相同字段查询文档

时间:2016-07-23 19:03:11

标签: mongodb database nosql

我有一个看起来像这样的文件:

{
  "_id" : "AouRpb5g2WR9sZe5z",
  "participants" : [ 
    {
        "user" : "CYvApwRFADveqBqEY",
        "unread" : false
    }, 
    {
        "user" : "sgoinZkaHbqth8nPr",
        "unread" : false
    }
   ],
 "createdAt" : ISODate("2016-07-23T04:06:53.748Z")
}

我需要能够找到包含用户'CYvApwRFADveqBqEY''sgoinZkaHbqth8nPr'的文档。我能够找到其中一个用elemMatch用户的所有文档,但无法解决这两个用户的问题,或者甚至是正确的方法。

1 个答案:

答案 0 :(得分:1)

使用$all进行find查询,您可以执行以下操作:

db.device.find({
  "participants.user": {
    $all: ["CYvApwRFADveqBqEY", "sgoinZkaHbqth8nPr"]
  }
});

来自$all的文件:

  

$ all运算符选择字段值为>数组的文档,其中包含所有指定元素。