【发布时间】:2021-03-16 20:26:18
【问题描述】:
我的数据库中有一个集合,其中每个项目如下所示:
{
"_id" : ObjectId("XXXXXX"),
"name" : "foo",
"products" : [{
"name" : "bar",
"code" : 123
},{
"name" : "foo",
"code" : 321
}]
}
我想从查询中得到一个数组,其中包含:来自特定集合的 [123, 321]。
这是我尝试过的:
db.getCollection('catalog').aggregate({
"$project": {
"products": {
"$map": {
"input": "$products",
"as" : "item",
"in" : "$$item.code"
}
}
}
})
但它失败并显示“最后阶段未定义”。
我做错了什么?
【问题讨论】:
-
我认为问题不完整 - mongoplayground.net/p/LUu3O03QZj1
-
我从字面上复制粘贴了您的示例,但对我仍然不起作用。不知道怎么回事
-
{ $project: { products: "$products.code" } }会更短
标签: mongodb projection