कैसा रहेगा:
db.users.find({ "name": { "$exists": true } }).sort({'name': 1})
क्योंकि आखिरकार जब आप जिस फ़ील्ड को सॉर्ट करना चाहते हैं वह वास्तव में मौजूद नहीं है तो लौटाया गया मान null
है और इसलिए किसी भी सकारात्मक परिणाम की तुलना में क्रम में "निचला"। तो उन परिणामों को बाहर करना समझ में आता है यदि आप वास्तव में केवल एक मिलान मूल्य के साथ कुछ ढूंढ रहे हैं।
यदि आप वास्तव में वहां सभी परिणाम चाहते हैं और null
. की परवाह किए बिना सामग्री, तो मैं आपको .aggregate()
. के माध्यम से उन्हें "वजन" करने का सुझाव देता हूं :
db.users.aggregate([
{ "$project": {
"name": 1,
"score": {
"$cond": [
{ "$ifNull": [ "$name", false ] },
1,
10
]
}
}},
{ "$sort": { "score": 1, "name": 1 } }
])
और वह सभी null
. को स्थानांतरित कर देता है एक मान निर्दिष्ट करके "श्रृंखला के अंत" के परिणाम।