2016-06-28 2 views
0

Есть ли способ объединить значения двух полей в одно поле или массив? У меня есть коллекция MongoDB, как это:Объединить значения двух полей в одну по коллекции

{"_id": 1, "side1": "a", "side2": "b"}, 
{"_id": 2, "side1": "c", "side2": "b"}, 
{"_id": 3, "side1": "b", "side2": "d"}, 
{"_id": 4, "side1": "a", "side2": "d"} 

Как получить массив, содержащий все значения side1 и side2.

{"_id": null, "sides": ["a", "b", "c", "d"]} 

Идентификатор не имеет значения. Я пробовал много агрегаций и каскадных команд запроса и просто не могу найти желаемого ответа.

+1

Это не возможно иметь несколько записей с таким же _id. Пожалуйста, разместите правильные данные –

ответ

1

I'v просто найти более простое решение:

db.LINK.aggregate([ 
    { $group: {"_id":0,"list1":{$addToSet:"$side1"},"list2":{$addToSet:"$side2"}}} , 
    { $project: {array:{$setUnion:["$list1","$list2"]}}} 
    ]) 
Смежные вопросы