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

MongoDB के साथ सरणी का क्रम कैसे बदलें?

जैसे @ blakes-seven ने कहा, आपके पास इसे करने के दो तरीके हैं:

पकड़ना, अपडेट करना और पुश करना

db.images.find({ _id: '' }, { images : 1 })
.then(function(img) {
  var tmpImg = img.images[0];
  img.images[0] = img.images[1];
  img.images[1] = tmpImg;

  db.images.update({ _id: img._id }, { $set: { images: img.images } });
})

सीधे अपडेट करना (यदि आपके पास क्लाइंट पर छवि है और अनुक्रमणिका जानते हैं), $स्थिति . का उपयोग करके

db.images.update({ _id: '' }, { $push: { images: { $each: ['img2'] }, $position: 0 } } } )
.then(function() {
  db.images.update({ _id: '' }, {$unset: {'images.2': 1}})
});

https://docs.mongodb.org/manual/reference/operator/update/position/

हालांकि, मुझे लगता है कि आपको अपनी छवियों को संग्रहीत करने के तरीके को फिर से डिज़ाइन करना चाहिए, उदाहरण के लिए वर्चुअल ऑर्डरिंग:

{
  images: [
    { base64: 'img1', order: 0, _id: 'img1' },
    { base64: 'img2', order: 1, _id: 'img2' },
    { base64: 'img3', order: 2, _id: 'img3' }
  ]
}

इस तरह, आप वर्चुअल ऑर्डर इंडेक्स का उपयोग करके अपनी छवियों को ऑर्डर कर सकते हैं, उन्हें केवल _id का उपयोग करके अपडेट कर सकते हैं, या सभी img2 के क्रम को बदलकर पूरे संग्रह को अपडेट कर सकते हैं, किसी छवि को छोड़ या बदल सकते हैं, आदि।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ClusterControl और उसके घटकों के प्रदर्शन का अनुकूलन कैसे करें

  2. MongoDB एकत्रीकरण के अंदर फ़ील्ड का प्रकार बदलें और क्या $lookup फ़ील्ड पर अनुक्रमणिका का उपयोग करता है या नहीं?

  3. ClusterControl 1.5 दस्तावेज़ीकरण - नया क्या है

  4. Go . से MongoDB एक्सेस करना

  5. मोंगोडीबी $sqrt