MongoDB Setunion и группа по - PullRequest
       22

MongoDB Setunion и группа по

1 голос
/ 10 марта 2019

У меня есть набор записей, где у каждого элемента есть дополнительный массив, и у каждого элемента есть собственный производитель.Я хочу объединить дополнительные массивы друг с другом одного и того же производителя.

`db.products.aggregate([

 { $project: {allValues: { $setUnion: "$Extras" }, _id: "$Manufacturer" } },

])`

Я использовал запрос выше, тогда каждый отдельный производитель показан, как показано ниже.enter image description here

Но то, что я хочу, это если производитель является Fiat, объединить все дополнительные (все значения) вместе

1 Ответ

2 голосов
/ 10 марта 2019

Вы можете использовать $ unwind для получения одного Extras на документ, а затем $ group на Manufacturer, используя $ addToSet для получения уникальных значений:

db.products.aggregate([
    {
        $unwind: "$Extras"
    },
    {
        $group: {
            _id: "$Manufacturer",
            allValues: { $addToSet: "$Extras" }
        }
    }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...