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

जावा के साथ MongoDB में दस्तावेज़ों का थोक अद्यतन कैसे करें?

नए bulkWrite() . पर मैनुअल में उदाहरण का उपयोग करना एपीआई, निम्नलिखित परीक्षण संग्रह पर विचार करें जिसमें निम्नलिखित दस्तावेज शामिल हैं:

{ "_id" : 1, "char" : "Brisbane", "class" : "monk", "lvl" : 4 },
{ "_id" : 2, "char" : "Eldon", "class" : "alchemist", "lvl" : 3 },
{ "_id" : 3, "char" : "Meldane", "class" : "ranger", "lvl" : 3 }

निम्नलिखित bulkWrite() characters . पर कई ऑपरेशन करता है संग्रह:

मोंगो शेल:

try {
    db.characters.bulkWrite([
        { 
            insertOne:{
                "document":{
                    "_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
                }
            }
        },
        { 
            insertOne:{
                "document": {
                    "_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
                }
            }
        },
        { 
            updateOne: {
                "filter" : { "char" : "Eldon" },
                "update" : { $set : { "status" : "Critical Injury" } }
            }
        },
        { 
            deleteOne: { "filter" : { "char" : "Brisbane"} }
        },
        { 
            replaceOne: {
               "filter" : { "char" : "Meldane" },
               "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
            }
        }
    ]);
}
catch (e) {  print(e); }

जो आउटपुट को प्रिंट करता है:

{
   "acknowledged" : true,
   "deletedCount" : 1,
   "insertedCount" : 2,
   "matchedCount" : 2,
   "upsertedCount" : 0,
   "insertedIds" : {
      "0" : 4,
      "1" : 5
   },
   "upsertedIds" : {

   }
}

समतुल्य जावा 3.2 कार्यान्वयन इस प्रकार है:

MongoCollection<Document> collection = db.getCollection("characters");
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
writes.add(
    new InsertOneModel<Document>(
        new Document("_id", 4)
            .append("char", "Dithras")
            .append("class", "barbarian")
            .append("lvl", 3)
    )
);
writes.add(
    new InsertOneModel<Document>(
        new Document("_id", 5)
            .append("char", "Taeln")
            .append("class", "fighter")
            .append("lvl", 4)
    )
);
writes.add(
    new UpdateOneModel<Document>(
        new Document("char", "Eldon"), // filter
        new Document("$set", new Document("status", "Critical Injury")) // update
    )
);
writes.add(new DeleteOneModel<Document>(new Document("char", "Brisbane")));
writes.add(
    new ReplaceOneModel<Document>(
        new Document("char", "Meldane"), 
        new Document("char", "Tanys")
            .append("class", "oracle")
            .append("lvl", 4)           
    )
);

BulkWriteResult bulkWriteResult = collection.bulkWrite(writes);

अपने प्रश्न के लिए replaceOne() . का उपयोग करें विधि और इसे

. के रूप में लागू किया जाएगा
MongoCollection<Document> collection = db.getCollection("collection");
List<WriteModel<Document>> writes = Arrays.<WriteModel<Document>>asList(
    new ReplaceOneModel<Document>(
        new Document("_id", 1001), // filter
        new Document("author", "newName"), // update
        new UpdateOptions().upsert(true) // options
    )   
);

BulkWriteResult bulkWriteResult = collection.bulkWrite(writes);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एंड्रॉइड पर मोंगोडीबी

  2. लोड होने पर यूनिक्स युग के बाद से एक मोंगो संग्रहीत तिथि को मिलीसेकंड में परिवर्तित करना?

  3. MongoDB अनुमानित डॉक्यूमेंटकाउंट ()

  4. MongoDB के लिए Percona सर्वर को अपग्रेड करने के लिए टिप्स

  5. रेल 3:एक ही समय में सक्रिय रिकॉर्ड और मोंगोइड का उपयोग कैसे करें