2013-08-26 49 views
11

rồi cho một khớp lĩnh vực tôi chạy:MongoDB tất cả trừ từ một hoặc hai tiêu chí

db.bios.find({ "Country":"Netherlands" }) 

Làm thế nào tôi có thể mang lại tất cả các văn bản nhưng không phải là những người có "Country":"Netherlands"?

Cũng có thể mang theo tất cả tài liệu nhưng không có 2 quốc gia?

Trả lời

17

Sử dụng $nin operator

Ví dụ:

db.bios.find({ Country: { $nin: ["Country1", "Country2"] } }) 

$ne cho chỉ là một quốc gia:

db.bios.find({ Country: { $ne: "Country1" } }) 
3

Bạn có thể sử dụng $ne-operator (không-bình đẳng) cho một giá trị duy nhất.

db.bios.find({ "Country": { $ne: "Netherlands" } }); 

Để loại trừ nhiều hơn một giá trị, bạn có thể sử dụng $nin (không-in) điều hành, cho phép bạn để vượt qua một loạt các giá trị:

db.bios.find({ "Country": { $nin: [ "Netherlands", "Belgium", "Luxembourg" ] });