Anda ingin menggunakan $elemMatch untuk ini.
{"genres": { "$elemMatch" : {"name": "Shooter"} } }
// or
{"genres": { "$elemMatch" : {"name": { "$in": ["Shooter"] } } } }
https://docs.mongodb.com/manual/reference/operator/ query/elemMatch/
Anda juga dapat menggunakan notasi titik mongodb dan itu akan berfungsi seperti yang Anda lakukan kecuali:
{"genres.name": "Shooter"}
// or
{"genres.name": { "$in": ["Shooter"]}}
Mongodb tahu bagaimana menafsirkan ini jika genres adalah sebuah array. Perlu diingat bahwa kueri notasi titik sedikit ambigu, karena kueri ini juga akan cocok dengan name properti jika genres properti bukan array. Misalnya, dokumen ini akan cocok dengan:
{"genres": { "name": "Shooter" } }
Dalam semua kasus, Anda dapat mengindeks name properti di genres array dan indeks akan digunakan untuk pencarian.
db.collection.createIndex({'genres.name': 1})
https://docs.mongodb.com/manual/reference/ glosarium/#istilah-titik-notasi
https://docs.mongodb.com/manual/reference/operator/ kueri/dalam/