我目前正在编写一个聚合,并有一个名为tags
的复杂对象数组,例如:{name: 'tag1'}
。
我想确保数组仅包含唯一的tags
。
{
$addFields: {
uniqueTags: {
$reduce: {
input: "$tags",
initialValue: {},
in: {$mergeObjects: {"$$this.name": "$$this"}}
}}
}},
上述代码失败,因为我使用$$this.name
作为对象密钥。如果我将其更改为其他内容,例如5
,则聚合工作会很完美。
答案 0 :(得分:0)
$addToSet
适用于嵌套对象。