由于您的功能键是一个数组,为了使用 $match 运算符,首先您必须使用 $unwind 运算符。http://docs.mongodb.org/manual/reference/aggregation/unwind/
然后你使用 $match 运算符来查找你想要的文档http://docs.mongodb.org/manual/reference/aggregation/match/
所以你的查询应该是这样的
db.collection.aggregate([{$unwind:"$Function"},{$match:{"Form_id":1,"Function.Function_id":2}}])
默认情况下,mongo 将显示文档的 _id。因此,如果您不想显示_id,在匹配相关的之后,您可以使用 $project 运算符http://docs.mongodb.org/manual/reference/aggregation/project/
db.collection.aggregate([{$unwind:"$Function"},{$match:{"Form_id":1,"Function.Function_id":2}},{$project:{"_id":0,"Form_id":1,"Function":1}}])
如果您不希望显示 form_id,只需不要在查询的项目部分中指定 form_id。默认情况下,mongo 只会显示值为 1 的键。如果没有提到该键,则不会显示它。
db.collection.aggregate([{$unwind:"$Function"},{$match:{"Form_id":1,"Function.Function_id":2}},{$project:{"_id":0,"Function":1}}])