Giả sử tôi có một bộ sưu tập như thế này:Mongo Query Mở Nhiều lĩnh vực Sub-Document
{ "arr" : [ { "name" : "a", "num" : 1 }, { "name" : "a", "num" : 2 } ] },
{ "arr" : [ { "name" : "b", "num" : 1 }, { "name" : "a", "num" : 2 } ] },
{ "arr" : [ { "name" : "b", "num" : 1 }, { "name" : "b", "num" : 2 } ] }
và tôi muốn tìm tất cả các tài liệu ai là arr
chứa một tiểu tài liệu với một name
= "b" và num
= 2.
Nếu tôi làm một truy vấn như thế này:
db.collection.find({
$and: [
{ "arr.name": "b" },
{ "arr.num": 2 }
]
});
nó sẽ trả lại tất cả các tài liệu trong bộ sưu tập vì họ từng có một su b-tài liệu với một trong hai một name
của "b" hoặc một num
của 2.
Tôi cũng đã thử điều này:
db.collection.find({
arr: [
{ "name": "b", "num": 2 }
]
});
mà không ném bất kỳ lỗi nào, nhưng không trả lại bất kỳ kết quả .
Làm cách nào để bạn truy vấn trên nhiều trường tài liệu phụ trong MongoDB?
Câu trả lời rất hữu ích và đầy đủ, xin lỗi vì không thể nâng cao gấp đôi. Cảm ơn Neil! – Moppo