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

MongoDB में पूरे डॉक्यूमेंट को रिप्लेस करके अपडेट करें

MongoDB update() से पूरा डॉक्यूमेंट रिप्लेस करना

update() में दूसरा पैरामीटर जब केवल नया डॉक्यूमेंट होता है (कोई ऑपरेटर जैसे $set नहीं), तो यह पूरे डॉक्यूमेंट को रिप्लेस कर देता है। _id फ़ील्ड अपरिवर्तित रहता है।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.replacingEntireDocumentDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentCountryName":"US"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3119bb64f4b851c3a13e8") }

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

> db.replacingEntireDocumentDemo.find().pretty();
{
  "_id": ObjectId("5cd3119bb64f4b851c3a13e8"),
  "StudentFirstName": "John",
  "StudentLastName": "Smith",
  "StudentCountryName": "US"
}

पूरा डॉक्यूमेंट रिप्लेस करें

> db.replacingEntireDocumentDemo.update(
  {"StudentFirstName":"John","StudentLastName":"Smith","StudentCountryName":"US"},
  {"StudentFirstName":"David","StudentLastName":"Miller","StudentCountryName":"AUS"}
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

रिप्लेस के बाद चेक करें

> db.replacingEntireDocumentDemo.find().pretty();
{
  "_id": ObjectId("5cd3119bb64f4b851c3a13e8"),
  "StudentFirstName": "David",
  "StudentLastName": "Miller",
  "StudentCountryName": "AUS"
}

महत्वपूर्ण चेतावनी

  • _id वही रहता है (ObjectId("5cd3119bb64f4b851c3a13e8"))
  • सभी पुराने फ़ील्ड हट जाते हैं - केवल नए डॉक्यूमेंट के फ़ील्ड रहते हैं
  • अगर नए डॉक्यूमेंट में कोई फ़ील्ड नहीं है तो वह गायब हो जाता है
  • यह $set से अलग है जो केवल निर्दिष्ट फ़ील्ड बदलता है

सुरक्षित विकल्प: replaceOne()

MongoDB 3.2+ में स्पष्ट replaceOne() मेथड उपयोग करें:

db.replacingEntireDocumentDemo.replaceOne(
  {"StudentFirstName": "John"},
  {"StudentFirstName": "David", "StudentLastName": "Miller", "StudentCountryName": "AUS"}
)
  1. - MongoDB दस्तावेज अपडेट करते समय कस्टम वेरिएबल का उपयोग कैसे करें

    अपडेट करने के लिए update() का उपयोग करें और कस्टम वेरिएबल बनाने और उपयोग करने का सिंटैक्स निम्न है: var anyVariableName=yourValue; db.yourCollectionName.update({filter},{$set:{yourFieldName:yourVariableName}}); आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo600.insertOne({id:1,Name:Robert}

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट में निश्चित तत्व कैसे ढूंढें?

    निश्चित तत्व ढूंढने के लिए MongoDB में $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo744.insertOne( { studentInformation: [ { studentName:Robert, grade:A }, { studentName:Bob, grade:C }, { studentName:John, grade:B }, { studentName:Sam, grade:A } ] } ); { acknowledged : true, insert