【发布时间】:2020-11-21 07:11:20
【问题描述】:
鉴于下面的条目列表,如果 _id 在 myArray 中,我想在管道阶段 $unset platformA。
const myArray = ['5f22f9ac6ee02a6707cf0586']
db.profiles.findOne({_id: ObjectId("5f22f9ac6ee02a6707cf0586")})
{
"_id" : ObjectId("5f22f9ac6ee02a6707cf0586"),
"platformA" : {
...
},
"platformB": {
...
}
}
这样项目之后的结果就是
{
"_id" : ObjectId("5f22f9ac6ee02a6707cf0586")
"platformB": {
...
}
}
我不明白如何访问 $_id 字段并有条件地将 $project platformA 设置为 0(如果它不在 myArray 中)。
{
// only show platformA when not in myArray
$project: {
platformA: 0
}
},
【问题讨论】:
-
@turivishal 我已经使用聚合完成了它(docs.mongodb.com/manual/reference/operator/aggregation/…