假设我在MongoDB中有一个集合,它有两个字段:foo
和bar
.我正在构建一个聚合管道,我想要计算另一个字段(baz
),它包含从foo
开始的值(如果设置了值),或者按照这个特定的顺序从bar
开始.
该行为应等同于以下JavaScript代码:
const baz = foo ?? bar;
实现这一目标的最佳方式是什么?
假设我在MongoDB中有一个集合,它有两个字段:foo
和bar
.我正在构建一个聚合管道,我想要计算另一个字段(baz
),它包含从foo
开始的值(如果设置了值),或者按照这个特定的顺序从bar
开始.
该行为应等同于以下JavaScript代码:
const baz = foo ?? bar;
实现这一目标的最佳方式是什么?
您可以使用$ifNull
运算符来执行此操作:
db.collection.aggregate([
{
$set: {
"aOrB": {
"$ifNull": [
"$a",
"$b"
]
}
}
}
])
看看这个mongoplayground.