{ members : [ ObjectId("one"), ObjectId("two") ]}
我想选择“一个”是否在成员中。
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}])
您将拥有带有对象的结果数组,但它使用起来很简单。但我认为这是肮脏的黑客:)