Mongodb $ mergeObjects使用变量属性作为对象键

时间:2019-04-06 00:41:09

标签: mongodb mongoose mongoid

我目前正在编写一个聚合,并有一个名为tags的复杂对象数组,例如:{name: 'tag1'}

我想确保数组仅包含唯一的tags

    {
        $addFields: {
            uniqueTags: {
                $reduce: {
                    input: "$tags",
                    initialValue: {},
                    in: {$mergeObjects: {"$$this.name": "$$this"}}
        }}
    }},

上述代码失败,因为我使用$$this.name作为对象密钥。如果我将其更改为其他内容,例如5,则聚合工作会很完美。

1 个答案:

答案 0 :(得分:0)

$addToSet适用于嵌套对象。