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

MongoDB डेटा की विषम वापसी, सरणी में पहला आइटम पूर्ण रूप से लौटा, बाकी कुछ गुणों के साथ छोड़ दिया गया?

यदि आपका उप-दस्तावेज़ सरणी जिसे आप छोड़ना चाहते हैं, वह बहुत बड़ा नहीं है। मैं इसे सिर्फ आवेदन पक्ष में हटा दूंगा। MongoDB में प्रोसेसिंग करने का मतलब है कि आप अपने एप्लिकेशन के बजाय MongoDB के कंप्यूट संसाधनों का उपयोग करना चुनते हैं। आम तौर पर आपका आवेदन बड़े पैमाने पर आसान और सस्ता होता है, इसलिए आवेदन स्तर पर कार्यान्वयन बेहतर होता है।

लेकिन इस सटीक मामले में इसे MongoDB में लागू करना बहुत जटिल नहीं है:

db.collection.aggregate([
  {
    $addFields: { // keep the first element somewhere
      first: { $arrayElemAt: [ "$mainArray", 0] }
    }
  },
  {
    $project: { // remove the subdocument field
      "mainArray.array": false
    }
  },
  {
    $addFields: { // join the first element with the rest of the transformed array
      mainArray: {
        $concatArrays: [
          [ // first element
            "$first"
          ],
          { // select elements from the transformed array except the first
            $slice: ["$mainArray", 1, { $size: "$mainArray" }]
          }
        ]
      }
    }
  },
  {
    $project: { // remove the temporary first elemnt
      "first": false
    }
  }
])

MongoDB खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. थ्रेड मुख्य java.lang.NoClassDefFoundError में जावा अपवाद के साथ MongoDB:org/bson/रूपांतरण/Bson

  2. MongoDB प्रदर्शन ट्रैक करें?

  3. ट्वीट्स के MongoDB डेटाबेस के लिए दिनांक सीमा क्वेरी विफल हो रही है

  4. सी # ड्राइवर के साथ मोंगोडीबी में शब्दकोश डालें

  5. MongoDB:क्या सार्वजनिक रूप से दस्तावेज़ की आईडी का उपयोग करना सुरक्षित है?