Đó là hành vi được mong đợi.
Nếu bạn muốn truy vấn (các) trường riêng lẻ của tài liệu nhúng, bạn cần sử dụng cú pháp sau - sử dụng dấu chấm (.
) ký hiệu. Ví dụ:cả hai truy vấn này đều trả về tài liệu:
db.test.find({"KPOP.SHINee": "Dream Girl"})
db.test.find({"KPOP.SHINee": "Dream Girl", "KPOP.BTS": "Fake Love" })
Trong các truy vấn trên, bạn có thể chỉ định một, hai hoặc tất cả các trường và theo bất kỳ thứ tự nào.
Bạn sử dụng cú pháp sau khi chỉ định bộ lọc cho toàn bộ tài liệu nhúng:
db.test.find({ KPOP: { SHINee: "Dream Girl", "Girl's Generation": "I Got a Boy", BTS: "Fake Love" } })
Trong trường hợp này, hãy lưu ý rằng thứ tự của các trường của tài liệu nhúng phải giống với của tài liệu gốc; tức là SHINee
, "Girl's Generation"
và BTS
(trong KPOP
). Và, bạn cần chỉ định tất cả các trường của tài liệu nhúng.