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

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

Cập nhật () phương thức cập nhật các giá trị trong tài liệu hiện có.

Cú pháp

db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

Trong Java, bạn có thể cập nhật một tài liệu duy nhất bằng cách sử dụng updateOne () phương pháp của com.mongodb.client.MongoCollection giao diện. Đối 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 com.mongodb.MongoClient;
public class UpdatingDocuments {
   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", "Vishakhapatnam");
      Document document3 = new Document("name", "Rhim").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);
      //Updating a document
      collection.updateOne(Filters.eq("name", "Robert"), Updates.set("city", "Delhi"));
      System.out.println("Document update successfully...");
      FindIterable<Document> iterDoc = collection.find();
      Iterator it = iterDoc.iterator();
      while (it.hasNext()) {
         System.out.println(it.next());
      }
   }
}

Đầu ra

Document update successfully...
Document after update:
Document{{_id=5e86dd21e9b25f3460b1abe0, name=Ram, age=26, city=Hyderabad}}
Document{{_id=5e86dd21e9b25f3460b1abe1, name=Robert, age=27, city=Vishakhapatnam}}
Document{{_id=5e86dd21e9b25f3460b1abe2, name=Rhim, age=30, city=Delhi}}