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

MongoDB में ऐरे फ़ील्ड वैल्यू कैसे बदलें

पोजिशनल ऑपरेटर ($) से ऐरे का विशिष्ट एलिमेंट बदलें

किसी ऐरे के अंदर विशिष्ट वैल्यू को नई वैल्यू से बदलने के लिए क्वेरी में उस वैल्यू को मैच करें और $set के साथ पोजिशनल $ ऑपरेटर का उपयोग करें।

उदाहरण: संग्रह बनाना

> db.replaceAnArrayFieldValueDemo.insertOne({"StudentTechnicalSubjects": ["MySQL", "SQL Server", "PL/SQL"]});
{ "acknowledged": true, "insertedId": ObjectId("5cea41e0ef71edecf6a1f68f") }

डॉक्यूमेंट देखना

> db.replaceAnArrayFieldValueDemo.find().pretty();
{
    "_id": ObjectId("5cea41e0ef71edecf6a1f68f"),
    "StudentTechnicalSubjects": ["MySQL", "SQL Server", "PL/SQL"]
}

ऐरे फ़ील्ड वैल्यू बदलने की क्वेरी

"SQL Server" को "MongoDB" से बदलें:

> db.replaceAnArrayFieldValueDemo.update(
    {"StudentTechnicalSubjects": "SQL Server"},
    { $set: {'StudentTechnicalSubjects.$': "MongoDB"} }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

परिणाम जांचना

> db.replaceAnArrayFieldValueDemo.find().pretty();
{
    "_id": ObjectId("5cea41e0ef71edecf6a1f68f"),
    "StudentTechnicalSubjects": ["MySQL", "MongoDB", "PL/SQL"]
}

पोजिशनल $ ने क्वेरी शर्त StudentTechnicalSubjects: "SQL Server" से मेल खाने वाले ऐरे एलिमेंट (दूसरा एलिमेंट) को पहचाना और उसे "MongoDB" से बदल दिया।

नोट: यदि ऐरे में डुप्लिकेट वैल्यूज़ हैं, तो केवल पहला मेल खाने वाला एलिमेंट अपडेट होता है। सभी मेल खाने वाले एलिमेंट्स अपडेट करने के लिए updateMany के साथ arrayFilters (MongoDB 3.6+) का उपयोग करें।

  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB में Single Array Value को String से Replace करना

    Replace करने के लिए $set और positional $ operator का उपयोग करें। Collection बनाना > db.demo564.insertOne({StudentName:[Chris,David,Mike,Sam]}); { acknowledged : true, insertedId : ObjectId(5e90880a39cfeaaf0b97b576) } सभी Documents Display करना > db.demo564.find().pretty(); Output: { _id :

  1. - MongoDB Aggregation - Specific Field Value वाले Documents Fetch करना

    इसके लिए aggregate() का उपयोग करें। मान लें हमें field Age value 21 वाले documents fetch करने हैं। Collection बनाना > db.demo685.insertOne( ... { ... details: ... [ ... { Name:Chris, Age:21 }, ... { Name:David, Age:23 }, ... { Name:Bob, Age:21 } ... ] ... } ...