1

MongoDB に次のデータがあるとします。

[ 
  { id: 1, stuff: ["A", "B"] },
  { id: 2, stuff: ["B", "C"] },
  ... (lots and lots of records)
]

すべての「もの」セットの結合を取得することは可能ですか? 例えば["A","B","C"]

使ってみました$addToSet

aggregate([
  { $group: {
      _id: null, 
      allStuff: { $addToSet: "$stuff" }
    }
  }
])

しかし、それはセットのセットを作成します[ ["A", "B"], ["B", "C"] ]

4

1 に答える 1

1

OK、あなたの試みを示した後、あなたができることは次のとおりです。

db.a.aggregate([
  { $unwind : "$stuff" },
  { $group : {
    _id: null,
    all : {$addToSet : "$stuff"}
  }}
])

最初は、配列内のすべての要素をアンワインドしてから、それらすべてをセットに追加しようとします。

db.a.insert({ id: 1, stuff: ["A", "B"] })
db.a.insert({ id: 2, stuff: ["B", "C"] })
db.a.insert({ id: 3, stuff: ["A", "B", "C", "D"] })

あなたにあげる:{ "_id" : null, "all" : [ "D", "C", "B", "A" ] }

于 2014-09-28T07:24:30.363 に答える