如何查询mongo以查找数组包含对象的所有文档,而对象又包含特定属性

时间:2017-06-21 16:09:01

标签: mongodb

我有一个mongo集合,其中每个文档看起来像这样:

{
  title: "blah blah",
  stuff: [
    {
      id:"001",
      data:"blah blah blah"
    },
    {
      id:"002",
      data:"bleeh blah blooh"
    },
    {
      id:"003",
      data:"bow wow wow"
    }
  ]
}

我想找到'stuff'数组包含至少一个'id'为'001'的对象的所有文档。

我最初的尝试是:

db.mycollection.find({ stuff: [ { id: "001" } ] });

但显然这不正确。

什么是正确的查询?

1 个答案:

答案 0 :(得分:0)

使用db.mycollection.find( { stuff: { $elemMatch: { id: "001"} } } )运算符

interface Foo { bar<T extends string>(keys: T[], handler: (parameter: { [P in T]: any }) => void): void; } var x: Foo; x.bar(['First', 'Second'], x => { console.log(x.First); console.log(x.Second); console.log(x.Third); //error });

https://docs.mongodb.com/manual/reference/operator/query/elemMatch/