2011-01-03 25 views
47

Các bản ghi trong cơ sở dữ liệu của tôi làMongoDB Query Để chọn các hồ sơ có được chìa khóa

{"_id":"1","fn":"sagar","ln":"Varpe"} 

{"_id":"1","fn":"sag","score":"10"} 

{"_id":"1","ln":"ln1","score":"10"} 

{"_id":"1","ln":"ln2"} 

Tôi cần phải thiết kế một truy vấn MongoDB để tìm tất cả các hồ sơ có một chìa khóa nhất định.

Ví dụ: nếu tôi chuyển ln làm tham số cho truy vấn, nó sẽ trả về tất cả các bản ghi trong đó ln là khóa. Kết quả sẽ là

{"_id":"1","fn":"sagar","ln":"Varpe"} 

{"_id":"1","ln":"ln1","score":"10"} 

{"_id":"1","ln":"ln2"} 

Trả lời

84

Để tìm xem liệu khóa/trường tồn tại trong tài liệu của bạn có sử dụng toán tử $exists hay không.

Via vỏ MongoDB ...

db.things.find({ ln : { $exists : true } }); 
+6

trong PyMongo: 'connection ['db'] ['collection']. Tìm ({" key ": {'$ exist': True}})' – bahmait

6

tôi đã cùng một vấn đề và

db.coll.find({"mykey":{'$exists': 1}}) 

làm việc cho tôi

0
db.collection.find({ ln: { $exists: true} }); 

Nhà điều hành $ kích thước phù hợp với bất kỳ mảng với số lượng các phần tử được chỉ định bởi đối số. Ví dụ:

db.collection.find({ ln: { $exists: true, $size: 0 } }); 

$ size không chấp nhận phạm vi giá trị. Để chọn tài liệu dựa trên các trường có số lượng phần tử khác nhau, hãy tạo trường truy cập mà bạn tăng khi bạn thêm phần tử vào trường.

Các vấn đề liên quan