Questo è il comportamento previsto.
Se desideri eseguire una query sui singoli campi di un documento incorporato, devi utilizzare la seguente sintassi:utilizzando il punto (.
) notazione. Ad esempio, entrambe queste query restituiscono il documento:
db.test.find({"KPOP.SHINee": "Dream Girl"})
db.test.find({"KPOP.SHINee": "Dream Girl", "KPOP.BTS": "Fake Love" })
Nelle query precedenti, puoi specificare uno, due o tutti i campi e in qualsiasi ordine.
Utilizzare la seguente sintassi quando si specifica il filtro per l'intero documento incorporato:
db.test.find({ KPOP: { SHINee: "Dream Girl", "Girl's Generation": "I Got a Boy", BTS: "Fake Love" } })
In questo caso, tieni presente che l'ordine dei campi del documento incorporato deve essere uguale a quello del documento originale; cioè, SHINee
, "Girl's Generation"
e BTS
(all'interno del KPOP
). E devi specificare tutti i campi del documento incorporato.