MongoDB 用 Java 如何更新文档?

文章导读
Previous Quiz Next MongoDB 提供了 MongoCollection 类来更新 collection 中的一个 document。
📋 目录
  1. 更新 Collection 中的 Document
A A

MongoDB - Java - 更新文档



Previous
Quiz
Next

MongoDB 提供了 MongoCollection 类来更新 collection 中的一个 document。

语法

// 选择一个 collection
MongoCollection<Document> collection =  database.getCollection("sampleCollection");
// 将 "title" 为 MongoDB 的文档属性 "likes" 更新为 150 
collection.updateOne(Filters.eq("title", "MongoDB"), Updates.set("likes", 150));

更新 Collection 中的 Document

要更新一个 document,我们首先需要连接到 database,然后选择 collection 并更新 document,如下所示 −

package com..mongodb;

import java.util.Iterator;

import org.bson.Document;

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;

public class MongoDBTester {

   public static void main(String args[]) {

      String uri = "mongodb://localhost:27017/";

      try (MongoClient mongoClient = MongoClients.create(uri)) {
         MongoDatabase database = mongoClient.getDatabase("myDb");

         // 选择一个 collection
         MongoCollection<Document> collection = database.getCollection("sampleCollection");

         collection.updateOne(Filters.eq("title", "MongoDB"), Updates.set("likes", 150));       
         System.out.println("Document updated successfully...");  

         // 获取 iterable 对象
         FindIterable<Document> iterDoc = collection.find();
         int i = 1;
         // 获取 iterator
         Iterator<Document> it = iterDoc.iterator();
         while (it.hasNext()) {
            System.out.println(it.next());
            i++;
         }
      }
   }
}

输出

现在,编译并运行上述程序,以在我们的数据库 myDb 的 collection 中更新一个 document。

执行后,上述程序将产生以下输出。

Document updated successfully...
Document{{_id=69673eabfe1a70a594cd116b, title=MongoDB, description=database, likes=150, url=https://www.example.com by=}}
Document{{_id=69675615b8a497382adfd88e, title=RethinkDB, description=database, likes=200, url=https://www.example.com by=}}