Bạn sẽ muốn sử dụng toán tử $in
thay vì $elemMatch
trong trường hợp này là $in
có thể được sử dụng để tìm kiếm giá trị (hoặc giá trị) bên trong một trường cụ thể. $ in yêu cầu danh sách các giá trị được chuyển thành mảng. Ngoài ra, và đối với trường hợp của bạn, nó sẽ tìm thấy một giá trị đơn lẻ, hoặc bằng cách tìm kiếm trong một mảng các giá trị. Toàn bộ tài liệu phù hợp được trả về.
Ví dụ, bạn có thể sử dụng nó như thế này:
db.mycodes.find({ code: { $in: ["001"] } })
Mà có thể được đơn giản hóa để chỉ là:
db.mycodes.find({ code: "001" })
Như MongoDB sẽ xem xét trong một mảng cho một trận đấu duy nhất như trên ("001"
).
Hoặc nếu bạn muốn tìm kiếm "001"
hoặc "002"
:
db.mycodes.find({ code: { $in: ["001", "002"] } })
$in documentation
là '$ in' thực sự những gì bạn đang tìm kiếm? [docs] (http://docs.mongodb.org/manual/reference/operator/in/) – WiredPrairie
Ví dụ về truy vấn hiện tại của bạn và kết quả bạn đang cố gắng đạt được sẽ rất hữu ích. Có vẻ như bạn muốn truy vấn '$ in'. – Stennie
@WiredPrairie: có chính xác ... nhờ nó hoạt động .. –