【发布时间】:2021-09-21 07:05:20
【问题描述】:
我正在尝试添加一个带有条件的新子字段。
如果该字段已经存在,我不会覆盖它。
在不满足条件的情况下,我不想添加父对象。
这是我的收藏:
{type: "A", object: {a: "", b: "foo"}},
{type: "A", object: {a: ""}},
{type: "A"},
{type: "B"}
这是我的汇总:
{
$addFields: {
"object.b": {
$cond: {
if: {$eq: ["$type","A"]},
then: {$ifNull: ["$object.b", "bar"]},
else: "$DROP"
}
}
}
}
$DROP 不是聚合命令,但在 else 情况下我不想添加新字段。
它不会创建b 字段,但仍保留父对象。
这是我目前的结果:
{type: "A", "object": {a: "", b: "foo"}},
{type: "A", "object": {a: "", b: "bar"}},
{type: "A", "object": {b: "bar"}},
{type: "B", "object": {}},
这就是我想要的:
{type: "A", object: {a: "", b: "foo"}},
{type: "A", object: {a: "", b: "bar"}},
{type: "A", object: {b: "bar"}},
{type: "B"}
我们将非常感谢您的帮助。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework