2010-10-04 26 views
6

Làm cách nào để tìm kiếm trong MongoDB tìm kiếm bất kỳ tài liệu nào có thuộc tính đã cho?MongoDB Tìm kiếm theo tên thuộc tính cho bất kỳ Tài liệu nào có thuộc tính đó

Điều tôi muốn làm là tìm tất cả các tài liệu có thuộc tính bất kể giá trị của nó là gì và dường như tôi không thể thực hiện điều này. Tôi đã thử sau đây

db.collection.find({"property", null}); //Finds things that don't have that property 
db.collection.find({"proprety", {}}); //Doesn't find anything unless something has the empty object as the value 

Có cú pháp nào cho điều này hoặc tôi có cần thực hiện thao tác Mapreduce không?

Trả lời

7

Chỉ cần đảo ngược các truy vấn và tìm kiếm các văn bản nơi có tài sản không phải là null ($ ne không bằng)

db.collection.find({ property : { $ne : null } }); 
+3

Sau khi đã tìm kiếm một số chi tiết nó trông giống như $ tồn tại cũng làm công việc tương tự – RobV

+0

Bạn là chính xác. $ tồn tại thực sự là con đường để đi! – halfdan

5

Dưới đây là câu trả lời mẫu sử dụng $ tồn tại:

db.collection.find({ property : { $exists: true } }); 
Các vấn đề liên quan