我有一个带有 $project 阶段的 mongodb 聚合管道,我想仅在满足条件时才包含某些字段。具体来说,我想在一个条件中排除 _id,并在另一个条件中包含第二个字段“second_id”。
我知道(还)不可能从 mongodb $project 中排除字段,但是是否可以有条件地包含它们?
有没有办法有条件地排除 _id 字段?它接受 0 或 1,但是如果我想根据 if 语句确定 0 或 1 呢?这将如何完成?
_id 的伪代码:
$project: { _id: { $ifNull: [ "$user_id", 0 ] } }
Run Code Online (Sandbox Code Playgroud)
它的主要用途是使用 doc.user_id 作为结果 _id,或者如果 user_id 为空,则允许 mongodb 创建一个新的自动增量 _id。