仅检索MongoDB集合中对象数组中的查询元素?
您可以使用投影运算符$elemMatch过滤MongoDB集合中对象数组中查询的元素。要仅检索MongoDB中对象数组中的查询元素,我们首先创建一个包含documents对象数组的集合。
查询如下:
> db.objectArray.insert({"Persons":[
{"PersonName":"Adam","PersonSalary":25000},{"PersonName":"Larry","PersonSalary":27000
}]});
WriteResult({ "nInserted" : 1 })
> db.objectArray.insert({"Persons":[
{"PersonName":"David","PersonSalary":32000},{"PersonName":"Carol","PersonSalary":77000
}]});
WriteResult({ "nInserted" : 1 })现在,您可以借助来显示所有文档find()。查询如下:
> db.objectArray.find().pretty();
以下是输出:
{
"_id" : ObjectId("5c6bfadc68174aae23f5ef53"),
"Persons" : [
{
"PersonName" : "Adam",
"PersonSalary" : 25000
},
{
"PersonName" : "Larry",
"PersonSalary" : 27000
}
]
}
{
"_id" : ObjectId("5c6bfb0968174aae23f5ef54"),
"Persons" : [
{
"PersonName" : "David",
"PersonSalary" : 32000
},
{
"PersonName" : "Carol",
"PersonSalary" : 77000
}
]
}这是只检索MongoDB对象数组中查询的元素的查询。在_id:0中添加了以排除id属性(不显示_id属性):
> db.objectArray.find({"Persons.PersonSalary":25000}, {
_id:0,Persons:{$elemMatch:{"PersonSalary":25000}}}).pretty();以下是输出:
{
"Persons" : [
{
"PersonName" : "Adam",
"PersonSalary" : 25000
}
]
}完成上述任务的另一种方法是在投影运算符$的帮助下。查询如下:
> db.objectArray.find({"Persons.PersonSalary":25000}, { _id:0,'Persons.$':1}).pretty();以下是输出:
{
"Persons" : [
{
"PersonName" : "Adam",
"PersonSalary" : 25000
}
]
}热门推荐
5 短祝福语简短暖心
10 结婚祝福语粤语大全简短
11 晚上祝福语女生文案简短
12 法语妈妈生日祝福语简短
13 药厂开工祝福语大全简短
14 蛋糕节日祝福语简短英文
15 跨年的生日祝福语简短
16 文案祝福语英文短句简短
17 在家聚餐婚礼祝福语简短
18 学生节祝福语大全简短