これが予想される動作です。
埋め込みドキュメントの個々のフィールドをクエリする場合は、次の構文を使用する必要があります-ドット(.
を使用) )表記。たとえば、これらのクエリは両方ともドキュメントを返します:
db.test.find({"KPOP.SHINee": "Dream Girl"})
db.test.find({"KPOP.SHINee": "Dream Girl", "KPOP.BTS": "Fake Love" })
上記のクエリでは、1つ、2つ、またはすべてのフィールドをおよび指定できます。 任意の順序で。
全体のフィルターを指定するときは、次の構文を使用します 埋め込まれたドキュメント:
db.test.find({ KPOP: { SHINee: "Dream Girl", "Girl's Generation": "I Got a Boy", BTS: "Fake Love" } })
この場合、フィールドの順序に注意してください。 埋め込まれたドキュメントのは、元のドキュメントのそれと同じである必要があります。つまり、SHINee
、"Girl's Generation"
およびBTS
(KPOP
内 )。また、すべてを指定する必要があります 埋め込まれたドキュメントのフィールド。