-1
{ members : [ ObjectId("one"), ObjectId("two") ]}

メンバーの中で「1つ」を選択したい。

4

1 に答える 1

0
db.collection.aggregate([{$unwind: '$members'}, {$match: {members: ObjectId("one")}}])

この場合、メンバー 1 を持つすべてのドキュメントを取得します。最初の $match 基準または/および $limit を使用できます。

db.collection.aggregate([{$match: {<expr>}}, {$unwind: '$members'}, {$match: {members: ObjectId("one")}}, {$limit: 1}])

オブジェクトを含む結果配列が得られますが、使い方は簡単です。しかし、これは汚いハックだと思います:)

于 2013-02-19T08:30:01.773 に答える