$mergeObjects
聚合运算符用于将多个文档合并为一个文档。可用于$bucket
、$bucketAuto
、$group
、$replaceRoot
等阶段。
语法
不同的阶段,语法略有不同,当在$bucket
、$bucketAuto
、$group
阶段使用时,语法为:
{
$mergeObjects: <document> }
当应用在表达式但不作为累加器时(包括$bucket
、$bucketAuto
、$group
阶段),语法为:
{
$mergeObjects: [ <document1>, <document2>, ... ] }
其中<document>
可以是任何能被解析为文档的表达式。
使用
$mergeObjects
忽略null操作数,如果所有的操作数都为null,$mergeObjects
返回一个空文档{}
。$mergeObjects
合并文档时,会使用最后一个合并的文档覆盖同名字段的值。
如:
{
$mergeObjects: [ {
a: 1 }, null ] }
结果为:
{
a: 1 }
{
$mergeObjects: [ null, null ] }
结果为:
{
}
{
$mergeObjects: [
{
a: 1 },
{
a: 2, b: 2 },
{
a: 3, c: 3 }
]
}
结果为:
{
a: 3, b: 2, c: 3 }
{
$mergeObjects: [