gpt4 book ai didi

java - 如何从java并发读取和更新mongodb的字段

转载 作者:行者123 更新时间:2023-11-30 03:46:19 24 4
gpt4 key购买 nike

让我们以 Facebook 帖子为例,其中多个用户对某个帖子点赞。现在,对于某些帖子,当前数据库存储了 10 个赞,如果两个用户同时喜欢该帖子,那么两个用户都会读取 10 作为当前赞,并一一更新 11,但正确的值应该是 12。如何使用 mongodb 和 java 实现这一点。

最佳答案

检查运营商$inc .

这是 link 中的示例代码:

// connect to MongoDB server.
Mongo mongo = new Mongo("localhost", 27017);
DB database = mongo.getDB("mydb");
DBCollection collection = database.getCollection("testCollection");

// create a simple db object where counter value is 0
DBObject temp = new BasicDBObject("name", "someName").append("counter", 0);

// insert it into the collection
collection.insert(temp);

// create an increment query
DBObject modifier = new BasicDBObject("counter", 1);
DBObject incQuery = new BasicDBObject("$inc", modifier);

// create a search query
DBObject searchQuery = new BasicDBObject("name", "someName");

// increment a counter value atomically
WriteResult upRes = collection.update(searchQuery, incQuery);

关于java - 如何从java并发读取和更新mongodb的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25611053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com