Mongodb获取与数组中特定字段匹配的文档

Mongodb获取与数组中特定字段匹配的文档,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有一个嵌套数组。只有当嵌套的数组元素具有特定的字段和值时,我才能使用mongo聚合查询获取文档。例如,考虑这一点: [ { _id: 1, timezone: "America/New_York", message: "Step 1: Started", details: [ { name: "A", date: "2017-02-08T12:1

我有一个嵌套数组。只有当嵌套的数组元素具有特定的字段和值时,我才能使用mongo聚合查询获取文档。例如,考虑这一点:

[
  {
    _id: 1,
    timezone: "America/New_York",
    message: "Step 1: Started",
    details: [
      {
        name: "A",
        date: "2017-02-08T12:10:40.787",
        location: "BLR11"
      },
      {
        name: "B",
        date: "2017-09-09T12:10:40.787",
        location: "BLR12"
      }
    ]
  },
  {
    _id: 2,
    message: " Step 1: Ended ",
    details: [
      {
        name: "E",
        date: "2017-05-08",
        location: "BLR31"
      }
    ]
  },
  {
    _id: 3,
    date: "2017-02-09",
    timezone: "Europe/London",
    message: "Step 2: Started",
    details: [
      {
        name: "E",
        date: "2017-05-08",
        location: "BLR11"
      }
    ]
  },
  {
    _id: 4,
    date: "2017-02-09T03:35:02.055",
    timezone: "+0530",
    message: "Step 2: In Progress"
  }
]
我想要文档,它在任何数组元素中都有位置:“BLR11”

因此,在上面的示例中,它应该只返回具有_id:1和_id:3的文档


如何使用聚合实现这一点?

您可以使用点表示法查询数组的属性:

db.collection.find({"details.location": "BLR11"})

哇!感谢您的即时回复!这正是我想要的结果,但如何使用聚合管道实现同样的结果呢?@ArunNalpet相同的查询,只需使用
$match
:@micki感谢您的帮助!我可以将更多操作添加到管道中这回答了你的问题吗?