Mongodb获取与数组中特定字段匹配的文档
我有一个嵌套数组。只有当嵌套的数组元素具有特定的字段和值时,我才能使用mongo聚合查询获取文档。例如,考虑这一点: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
[
{
_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感谢您的帮助!我可以将更多操作添加到管道中这回答了你的问题吗?