यह अध्याय यह बताता है कि Golang MongoDB में दस्तावेज़ डेटा को कैसे अपडेट करें।
MongoDB द्वारा समर्थित अद्यतन कार्य
- Collection.UpdateOne - एक जीवन एक निर्दिष्ट डेटा को अद्यतन करें
- Collection.UpdateMany - बैच में डेटा को अद्यतन करें
- Collection.ReplaceOne - डेटा को बदलें
परीक्षण डेटा की तैयारी
coll संग्रह में एक बैच डेटा डालें
docs := []interface{}{
bson.D{
{"item", "canvas"},
{"qty", 100},
{"size", bson.D{
{"h", 28},
{"w", 35.5},
{"uom", "cm"},
}},
{"status", "A"},
},
// शेष डेटा यहां डालें...
}
result, err := coll.InsertMany(context.Background(), docs)
एक दस्तावेज़ अद्यतन करें
result, err := coll.UpdateOne(
context.Background(), // संदर्भ पैरामीटर प्राप्त करें
bson.D{ // डॉक्स: अपडेट करने वाले फ़ील्ड की सामान्य शोध के लिए क्वेरी मानों को सेट करें
{"item", "paper"},
},
bson.D{ // अपड
## दस्तावेज़ थोक में अपडेट करें
UpdateOne फ़ंक्शन से अंतर यह है कि UpdateMany मेल क्राइटीरिया के आधार पर मिलने वाले दस्तावेज़ को थोक में अपडेट करता है।
result, err := coll.UpdateMany( context.Background(), bson.D{ // क्वेरी में मानदंड सेट करें, मात्रा > 50 {"qty", bson.D{ {"$lt", 50}, }}, }, bson.D{ // अपडेट सामग्री सेट करें {"$set", bson.D{ {"size.uom", "cm"}, {"status", "P"}, }}, {"$currentDate", bson.D{ {"lastModified", true}, }}, }, )
## एक दस्तावेज़ को बदलें
क्वेरी मानदंड के आधार पर एक निर्दिष्ट दस्तावेज़ को खोजें और दस्तावेज़ सामग्री को निर्दिष्ट सामग्री से बदलें।
> सुझाव: दस्तावेज़ को बदलना सामग्री का सम्पूर्ण परिवर्तन होता है, व्याख्यान का आंशिक अपडेट नहीं है।
result, err := coll.ReplaceOne( context.Background(), bson.D{ // क्वेरी मानदंड सेट करें, item=paper {"item", "paper"}, }, bson.D{ // नए दस्तावेज़ सामग्री सेट करें {"item", "paper"}, {"instock", bson.A{ bson.D{ {"warehouse", "A"}, {"qty", 60}, }, bson.D{ {"warehouse", "B"}, {"qty", 40}, }, }}, }, )
सबसे पहले, क्वेरी मानदंड के आधार पर, item=paper वाले दस्तावेज़ को खोजें, और फिर उसे नए दस्तावेज़ सामग्री से बदलें।