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

जावा में findOneAndUpdate विधि का उपयोग करके MongoDB दस्तावेज़ अद्यतन सरणी तत्व

आपको सरणी फ़िल्टर एक विशिष्ट सरणी तत्व (एक शर्त के साथ) को अद्यतन करने के लिए। जावा में सरणी फ़िल्टर को FindOneAndUpdateOptions with के साथ परिभाषित किया गया है वस्तु।

List<Bson> arrFilters = new ArrayList<>();
arrFilters.add(new Document("elem.apn", "abcdef")); // this specifies the element search criteria
FindOneAndUpdateOptions updateOptions = new FindOneAndUpdateOptions().arrayFilters(arrFilters);

String [] dArray = { "app", "ban", "ora" }; // the "d" array to be added
Bson update = set("session.ps.$[elem].d", Arrays.asList(dArray));

String idStr = "5e37dc262f5ff4dfc935eb6b";
Bson queryFilter = eq("_id", new ObjectId(idStr));

Document result = coll.findOneAndUpdate(queryFilter, update, updateOptions);
System.out.println(result);

Mongo Shell में वही अपडेट ऑपरेशन:

var dArray = [ "app", "ban" ];

db.test.updateOne(
   { _id: ObjectId("5e37dc262f5ff4dfc935eb6b") }, 
   { $set: { "session.ps.$[elem].d" : dArray } },
   {
     arrayFilters: [ { "elem.apn": "abcdef" } ]
   }
)


[जोड़ें संपादित करें]

apn को अपडेट कर रहा है एक साथ एक नए मान "newVal" और . के साथ d . में एक नया स्ट्रिंग तत्व "गुआ" जोड़ना सरणी (यदि सरणी मौजूद नहीं है तो यह एक नई सरणी जोड़ देगा):

db.test.updateOne(
   { _id: ObjectId("5e37dc262f5ff4dfc935eb6b") }, 
   { 
     $set: { "session.ps.$[elem].apn": "newVal" }
     $push: { "session.ps.$[elem].d" : "gua" } 
   },
   {
     arrayFilters: [ { "elem.apn": "abcdef" } ]
   }
)

उपरोक्त मोंगो शैल कोड के लिए जावा कोड:

List<Bson> arrayFilters = new ArrayList<>();
arrayFilters.add(new Document("elem.apn", "abcdef"));
FindOneAndUpdateOptions updateOptions = 
    new FindOneAndUpdateOptions().arrayFilters(arrayFilters);   

Bson pushUpdate = push("session.ps.$[elem].d", "gua");
Bson setUpdate = set("session.ps.$[elem].apn", "newValue");
Bson update = combine(pushUpdate, setUpdate);

String idStr = "5e37dc262f5ff4dfc935eb6b";
Bson queryFilter = eq("_id", new ObjectId(idStr));

Document result = coll.findOneAndUpdate(queryFilter, update, updateOptions);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js - एकाधिक async कॉल की प्रतीक्षा करें

  2. मोंगोडब के कुल के अंदर कॉल फ़ंक्शन?

  3. MongoDB - कुल योग

  4. मैं MongoDB दस्तावेज़ फ़ील्ड को केवल तभी अपडेट करूं जब वे मौजूद न हों?

  5. क्या एकत्र करते समय MongoDB में $cond में कोई अन्य चीज़ है