【发布时间】:2020-12-18 02:45:13
【问题描述】:
我有嵌套数组文档解释如下:
countries: [
{
"id": "id of country",
"cities": [
{
"id": "id of city 1",
"areas": [
{
"id": "id of area 1"
},
{
"id": "id of area 2"
},
{
"id": "id of area 3"
},
{
"id": "id of area 4"
}
]
},
{
"id": "id of city 2",
"areas": [
{
"id": "id of area 1"
},
{
"id": "id of area 2"
},
{
"id": "id of area 3"
},
{
"id": "id of area 4"
}
]
}
]
}
]
我的目标是使用$addFields添加一个字段来指示给定的id是否匹配区域ID。
{$addFields: {
isDeliveringToArea: {
$in: [ObjectId('5db5d11cb18a2500129732a5'),'$countries.cities.areas.id']
}
}}
但显然$in 不适用于嵌套数组。
我想要类似 find 方法的东西 Model.find({'countries.cities.areas.id': 'areaID'}) 但要在聚合中返回一个布尔值。
【问题讨论】:
-
@turivishal 在管道聚合中
标签: javascript node.js mongodb mongoose aggregation-framework