Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để cập nhật nhiều tài liệu trong bộ sưu tập MongoDB bằng Java?

Sử dụng updateMany () bạn có thể cập nhật tất cả các tài liệu của một bộ sưu tập.

Cú pháp

db.COLLECTION_NAME.update(<filter>, <update>)

Trong Java, giao diện com.mongodb.client.MongoCollection cung cấp cho bạn một phương thức có cùng tên. Sử dụng phương pháp này, bạn có thể cập nhật nhiều tài liệu trong bộ sưu tập cùng một lúc, với phương pháp này, bạn cần chuyển bộ lọc và các giá trị cho bản cập nhật.

Ví dụ

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.MongoClient;
public class UpdatingMultipleDocuments {
   public static void main( String args[] ) {
      // Creating a Mongo client
      MongoClient mongo = new MongoClient( "localhost" , 27017 );
      //Connecting to the database
      MongoDatabase database = mongo.getDatabase("myDatabase");
      //Creating a collection object
      MongoCollection<Document>collection =
      database.getCollection("myCollection");
      //Preparing documents
      Document document1 = new Document("name", "Ram").append("age", 26).append("city", "Hyderabad");
      Document document2 = new Document("name", "Robert").append("age", 27).append("city", "Delhi");
      Document document3 = new Document("name", "Rahim").append("age", 30).append("city", "Delhi");
      //Inserting the created documents
      List<Document> list = new ArrayList<Document>();
      list.add(document1);
      list.add(document2);
      list.add(document3);
      collection.insertMany(list);
      System.out.println("List of the documents: ");
      FindIterable<Document> iterDoc = collection.find();
      Iterator it = iterDoc.iterator();
      while (it.hasNext()) {
         System.out.println(it.next());
      }
      //Updating multiple documents
      Bson filter = new Document("city", "Delhi");
      Bson newValue = new Document("city", "Vijayawada");
      Bson updateOperationDocument = new Document("$set", newValue);
      collection.updateMany(filter, updateOperationDocument);
      System.out.println("Document update successfully...");
      System.out.println("List of the documents after update");
      iterDoc = collection.find();
      it = iterDoc.iterator();
      while (it.hasNext()) {
         System.out.println(it.next());
      }
   }
}

Đầu ra

List of the documents:
Document{{_id=5e88a61fe7a0124a4fc51b2c, name=Ram, age=26, city=Hyderabad}}
Document{{_id=5e88a61fe7a0124a4fc51b2d, name=Robert, age=27, city=Delhi}}
Document{{_id=5e88a61fe7a0124a4fc51b2e, name=Rahim, age=30, city=Delhi}}
Document update successfully...
List of the documents after update
Document{{_id=5e88a61fe7a0124a4fc51b2c, name=Ram, age=26, city=Hyderabad}}
Document{{_id=5e88a61fe7a0124a4fc51b2d, name=Robert, age=27, city=Vijayawada}}
Document{{_id=5e88a61fe7a0124a4fc51b2e, name=Rahim, age=30, city=Vijayawada}}