MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB:मौजूदा फ़ील्ड के अनुसार क्रमबद्ध करें और फिर वर्णानुक्रम में

कैसा रहेगा:

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 . को स्थानांतरित कर देता है एक मान निर्दिष्ट करके "श्रृंखला के अंत" के परिणाम।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoengine के साथ GridFs के बजाय DEFAULT_FILE_STORAGE पर फ़ाइलें अपलोड करें

  2. मोंगोडब प्रमाणीकरण सही कैसे प्राप्त करें

  3. एक ही दस्तावेज़ के भीतर एक तत्व को एक सरणी से दूसरे में ले जाएँ MongoDB

  4. MongoMapper maxDistance के पास - Mongo::OperationFailure:भौगोलिक मान संख्याएँ होनी चाहिए:

  5. टेम्पलेट में उपयोग के लिए MongoDB से HTML प्राप्त करना