आप $nin
यहाँ हैं:
.find({ "email": { "$nin": [ null, "" ] } })
समस्या है $ne
दो बार दोहराए गए और अधिलेखित कर देता है। आप इस्तेमाल कर सकते हैं $or
लेकिन $nin
कम है:
को देखते हुए:
{
"_id" : ObjectId("59633c28f5f11516540d118e"),
"a" : 1.0
}
{
"_id" : ObjectId("59633c28f5f11516540d118f"),
"a" : 1.0,
"email" : ""
}
{
"_id" : ObjectId("59633c28f5f11516540d1190"),
"a" : 1.0,
"email" : null
}
{
"_id" : ObjectId("59633c28f5f11516540d1191"),
"a" : 1.0,
"email" : "fred"
}
बस रिटर्न:
{
"_id" : ObjectId("59633c28f5f11516540d1191"),
"a" : 1.0,
"email" : "fred"
}
इसके अलावा, आप भी जब आप वास्तव में एक मूल्य का परीक्षण कर रहे $exists
जरूरत नहीं है। यह पहले से ही निहित है कि "अस्तित्व" है।
स्रोत
2017-07-10 08:36:53
धन्यवाद बहुत दोस्त! इसने काम कर दिया। यहां तक कि मुझे एक ही चीज़ पर संदेह था जैसे ही मैंने सवाल पोस्ट किया कि यह दो डॉलर की वजह से किसी भी तरह से है। –