Ese es el comportamiento esperado.
Si desea consultar los campos individuales de un documento incrustado, debe usar la siguiente sintaxis:usar el punto (.
) notación. Por ejemplo, ambas consultas devuelven el documento:
db.test.find({"KPOP.SHINee": "Dream Girl"})
db.test.find({"KPOP.SHINee": "Dream Girl", "KPOP.BTS": "Fake Love" })
En las consultas anteriores, puede especificar uno, dos o todos los campos y en cualquier orden.
Utiliza la siguiente sintaxis al especificar el filtro para el todo documento incrustado:
db.test.find({ KPOP: { SHINee: "Dream Girl", "Girl's Generation": "I Got a Boy", BTS: "Fake Love" } })
En este caso, tenga en cuenta que el orden de los campos del documento incrustado debe ser el mismo que el del documento original; es decir, SHINee
, "Girl's Generation"
y BTS
(dentro del KPOP
). Y debe especificar todos los campos del documento incrustado.