Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB क्वेरी से सरणी तत्वों का क्रम बदलना

MongoDB में JavaScript का उपयोग करके सरणी तत्वों का क्रम बदलना

MongoDB में सरणी तत्वों का क्रम बदलने के लिए कोई सीधा ऑपरेटर नहीं है, लेकिन आप find() के साथ forEach() और update() का उपयोग करके JavaScript लॉजिक लागू कर सकते हैं।

नमूना डेटा बनाना

> db.demo301.insertOne({"Name":["Chris","David","Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d6ff55d93261e4bc9ea51") }

सभी दस्तावेज़ प्रदर्शित करना

> db.demo301.find();

आउटपुट:

{ "_id" : ObjectId("5e4d6ff55d93261e4bc9ea51"), "Name" : [ "Chris", "David", "Bob" ] }

सरणी के पहले दो तत्वों को स्वैप करने की क्वेरी

> db.demo301.find({}, { Name : 1 }).forEach(function(n) {
    var t = n.Name[0];
    n.Name[0] = n.Name[1];
    n.Name[1] = t;
    db.demo301.update({ _id: n._id }, { $set: { Name: n.Name } });
})

अपडेट के बाद दस्तावेज़ प्रदर्शित करना

> db.demo301.find();

आउटपुट:

{ "_id" : ObjectId("5e4d6ff55d93261e4bc9ea51"), "Name" : [ "David", "Chris", "Bob" ] }

व्याख्या

  • find({}, { Name : 1 }) - केवल Name फ़ील्ड (और _id) प्राप्त करें।
  • forEach() - प्रत्येक दस्तावेज़ पर पुनरावृति करें।
  • JavaScript स्वैप लॉजिक: अस्थायी चर t में पहला तत्व स्टोर करें, दूसरा पहले पर असाइन करें, फिर t को दूसरे पर।
  • $set के साथ update() - संशोधित सरणी को डेटाबेस में सहेजें।

सावधानियां

  • यह दृष्टिकोण केवल MongoDB शेल में काम करता है।
  • बड़े संग्रहों के लिए धीमा हो सकता है (प्रत्येक दस्तावेज़ के लिए अलग अपडेट)।
  • उत्पादन में, एप्लिकेशन कोड में सरणी संशोधन करना बेहतर है।
  • MongoDB 5.2+ में $arrayElemAt और $set के साथ aggregation pipeline का उपयोग करके एकल अपडेट में किया जा सकता है।
  1. - MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे क्वेरी करें?

    सबडॉक्यूमेंट्स के ऐरे को क्वेरी करने के लिए MongoDB में $unwind का उपयोग करें। नमूना डेटा बनाना (सबडॉक्यूमेंट्स ऐरे) db.demo499.insertOne({ details: [ { Name:MIT, Rank: 1, CountryName:US }, { Name:Stanford University, Rank: 2 }, { Name:University of California, Berkeley, Rank: 3 }

  1. - MongoDB में ऐरे के अंदर एलिमेंट्स कैसे अपडेट करें?

    ऐरे के अंदर एलिमेंट्स अपडेट करने के लिए MongoDB में $set का उपयोग करें। नमूना डेटा बनाना (CollegeDetails ऐरे) db.demo494.insertOne( { CollegeDetails : [ { CollegeName : MIT, Fees : 80000 }, { CollegeName : SU, Fees : 90000 } ] } ) अपडेट से पहले दस्तावेज़ देखना db.demo494.find().prett

  1. - MongoDB में नेस्टेड सरणी को कैसे सॉर्ट करें?

    MongoDB में नेस्टेड सरणी को सॉर्ट करने के लिए, $sort का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo505.insertOne( { details: [ { Name:Chris, Score:58 }, { Name:Bob, Score:45 }, { Name:John, Score:68 }, { Name:David, Score:46 } ] }); { ackn