Mongo:当数组中的id(不是对象数组)时如何从id-array中选择

时间:2013-02-19 07:55:15

标签: mongodb

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

我想选择"一个"是否在会员。

1 个答案:

答案 0 :(得分:0)

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

在这种情况下,您将获得所有包含成员1的文档。您可以使用第一个$匹配条件或/和$ limit:

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

您将拥有包含对象的结果数组,但它使用起来很简单。但我认为这是肮脏的黑客:)