Това е очакваното поведение.
Ако искате да направите заявка за индивидуално поле(я) на вграден документ, трябва да използвате следния синтаксис - като използвате точката (.
) нотация. Например и двете заявки връщат документа:
db.test.find({"KPOP.SHINee": "Dream Girl"})
db.test.find({"KPOP.SHINee": "Dream Girl", "KPOP.BTS": "Fake Love" })
В горните заявки можете да посочите едно, две или всички полета и в произволен ред.
Използвате следния синтаксис, когато указвате филтъра за цялото вграден документ:
db.test.find({ KPOP: { SHINee: "Dream Girl", "Girl's Generation": "I Got a Boy", BTS: "Fake Love" } })
В този случай имайте предвид, че редът на полетата на вградения документ трябва да е същият като този на оригиналния документ; т.е. SHINee
, "Girl's Generation"
и BTS
(в рамките на KPOP
). И трябва да посочите всички полетата на вградения документ.