これは、findを使用して直接行うことはできません。 およびelemMatch elemMatchの次の制限のため およびmongo array fields 。
およびmongo配列フィールドの制限は以下のとおりです
したがって、これに従ってexamのみを見つけようとしました。 またはquiz
db.collectionName.find({"_id":22,"scores":{"$elemMatch":{"type":"exam"}}},{"scores.$.type":1}).pretty()
examのみを表示します スコア配列。
それ以外の場合は、aggregationを実行する必要があります