在以下情况下,请帮助我。 以下是示例数据单个文档。 在所有文档中,我需要一个文档,并具有预期的数组值(状态为活动,状态为非活动等)。
{
"_id":.......
"type":"dept",
"values":[
{
"name":"dept 1",
"status":"active"
},
{
"name":"dept 2",
"status":"active"
},
{
"name":"dept 3",
"status":"deleted"
},
{
"name":"dept 4",
"status":"active"
},
{
"name":"dept 5",
"status":"active"
},
{
"name":"dept 6",
"status":"disabled"
},
]
}
预期结果
1)使所有Active(在数组内部)
{
"_id":.......
"type":"dept",
"values":[
{
"name":"dept 1",
"status":"active"
},
{
"name":"dept 2",
"status":"active"
}
{
"name":"dept 4",
"status":"active"
},
{
"name":"dept 5",
"status":"active"
}
]
}
2)获得非活动状态(在数组内部)
{
"_id":.......
"type":"dept",
"values":[
{
"name":"dept 3",
"status":"deleted"
},
{
"name":"dept 6",
"status":"disabled"
},
]
}
请帮助我进行查询以获得高于预期的结果。 我想用上面的示例中期望的数组值检索文档。
答案 0 :(得分:1)
您的问题在这里有答案:How to search in array of object in mongodb
但是总而言之,您可以这样做:
db.collection.find({values: {$elemMatch: {status: 'active'}}})
希望对您有帮助