$elemMatch
を使用することをお勧めします このために。
{"genres": { "$elemMatch" : {"name": "Shooter"} } }
// or
{"genres": { "$elemMatch" : {"name": { "$in": ["Shooter"] } } } }
https://docs.mongodb.com/manual/reference/operator/ query / elemMatch /
mongodbドット表記を使用することもできますが、それ以外はほとんど同じように機能します。
{"genres.name": "Shooter"}
// or
{"genres.name": { "$in": ["Shooter"]}}
Mongodbは、genres
の場合にこれを解釈する方法を知っています。 は配列です。ドット表記クエリはname
とも一致するため、少しあいまいであることに注意してください。 genres
の場合のプロパティ プロパティは配列ではありません。たとえば、このドキュメントは次のように一致します:
{"genres": { "name": "Shooter" } }
いずれの場合も、name
にインデックスを付けることができます genres
のプロパティ 配列とインデックスがルックアップに使用されます。
db.collection.createIndex({'genres.name': 1})
https://docs.mongodb.com/manual/reference/用語集/#term-dot-notation
https://docs.mongodb.com/manual/reference/operator/ query / in /