如何用Java更新MongoDb数据库?

2024-01-11

我是 MongoDb 的新手,有很多关于在 2.x 版本中更新集合的示例,但我找不到任何关于 3.x 版本的来源。

Java代码:

    MongoClient mongoClient = new MongoClient("localhost",27017);
    MongoDatabase database = mongoClient.getDatabase("dbTest");
    MongoCollection<Document> collection =    database.getCollection("colTest");
    Document updateQuery = new Document();
    updateQuery.append("$set",
    new Document().append("_id", "test"));
    Document searchQuery = new Document();
    searchQuery.append("likes", "125");
    collection.updateMulti(searchQuery, updateQuery); //.updateMulti gives an error.

3.x 中没有 updateMulti,那么我如何检查数据库的 id 并更改其中一项数据?

示例 MongoDB:

 { 
"_id" : "test",
   "status" : 2,
   "time" : null,
   "instagram" :{
         "description" : "database",
         "likes" : 100,
         "url" : "http://www.instagram.com/",
         "by", "users"
   },
   "batchid" : 15000234
}

预期输出:

{ 
   "_id" : "test",
   "status" : 1,
   "time" : null,
   "instagram" :{
         "description" : "database",
         "likes" : 125,
         "url" : "http://www.instagram.com/",
         "by", "users"
   },
   "batchid" : 15000234
}

对于 Mongodb-java 驱动程序:

使用 updateOne 方法 要根据过滤器更新集合中的单个文档,

         collection.updateOne(searchQuery, updateQuery );

使用 updateMany 方法, 要根据过滤器更新集合中的多个文档,

         collection.updateMany(searchQuery, updateQuery );

Example,

        MongoClient client = new MongoClient("localhost",27017);
        MongoDatabase db = client.getDatabase("TestDB");
        MongoCollection<Document> collection = db.getCollection("test");
        Document query = new Document();
        query.append("_id","test");
        Document setData = new Document();
        setData.append("status", 1).append("instagram.likes", 125);
        Document update = new Document();
        update.append("$set", setData);
        //To update single Document  
        collection.updateOne(query, update);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用Java更新MongoDb数据库? 的相关文章

随机推荐