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"} 

방법 측면 1과 측면 2의 모든 값을 포함하는 배열을 얻을 수 있습니다.

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

이 ID는 중요하지 않습니다. 많은 집계 및 계단식 쿼리 명령을 시도했지만 원하는 응답을 얻을 수 없습니다.

+1

같은 _id 여러 기록을 가질 수 없습니다. 올바른 데이터를 게시하십시오. –

답변

1

은 I'v 그냥 간단한 해결책을 찾을 :

db.LINK.aggregate([ 
    { $group: {"_id":0,"list1":{$addToSet:"$side1"},"list2":{$addToSet:"$side2"}}} , 
    { $project: {array:{$setUnion:["$list1","$list2"]}}} 
    ]) 
관련 문제