Mongodb $ mergeObjects использует переменный атрибут в качестве ключа объекта - PullRequest
0 голосов
/ 06 апреля 2019

Я сейчас пишу агрегат и у меня есть массив с именем tags сложных объектов, таких как: {name: 'tag1'}.

Я хочу убедиться, что массив содержит только уникальные tags.

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

Приведенный выше код завершается ошибкой, потому что я использую $$this.name в качестве ключа объекта.Если бы я изменил его на что-то другое, например 5, агрегация работает идеально.

1 Ответ

0 голосов
/ 10 апреля 2019

$addToSet работает для вложенных объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...