0
我是使用mongo數據庫的新手,並且一直試圖找出一種方法來獲取mongo db集合中的嵌套數組的計數,如下所示。在MongoDB中計數和更新嵌套數組
{
city_id: 'C1',
city_name: "C1Name",
wards: [{
ward_id: "W1",
ward_number: "1",
areas: [{
area_id: "a1",
area_name: "a1Name"
},
{
area_id: "a2",
area_name: "a2Name"
}]
},
{
ward_id: "W2",
ward_number: "2",
areas: [{
area_id: "a21",
area_name: "a21Name"
}, {
area_id: "a22",
area_name: "a22Name"
}]
}]
},
{
city_id: 'C2',
city_name: "C2Name",
wards: [{
ward_id: "W21",
ward_number: "21",
areas: [{
area_id: "aw21",
area_name: "aw21Name"
},{
area_id: "aw22",
area_name: "aw22Name"
}]
},{
ward_id: "W132",
ward_number: "132",
areas: [{
area_id: "a132",
area_name: "a132Name"
}, {
area_id: "a1332",
area_name: "a2112Name"
}]
}]
}
現在在這裏我要在city_id = C1和ward_id = W1
我用聚集的
db.city_details.aggregate(
{$match:{"city_id":"C1"}},
{$project:{"wards":"$wards"}},
{$unwind:"$wards"},
{$project{"ward":"$wards.id","area":"$wards.areas"}},
{$match:{ward:"W1"}},
{$project:{$count:{"area"}}
)
city_details區域的數目這應該讓我數爲2,但它不是」不工作。
另外如何更新這些區域數組?
嗨,感謝Julian您的查詢完成了這項工作,但我不明白在$ eq操作符 – TGW
中使用了兩個$符號更多詳細信息可以在[mongodb docu](https://docs.mongodb。 COM /手動/參考/聚集變量/)。但總之,_ $$ _可以從_ward_獲得當前值。 –