gpt4 book ai didi

java - 使用java使用upsert在mongodb中获取com.mongodb.MongoException$DuplicateKey

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:50 25 4
gpt4 key购买 nike

我无法使用 java 来更新 mongo db upsert 的现有记录。我编写了一个查询来使用 id 查找记录,但在尝试更新其抛出 com.mongodb.MongoException$DuplicateKey 异常时。

示例数据:

{"_id" : ObjectId("5788bef4191fda5c9077af78"),
"type" : "PRIVATE",
"users" : [
{
"_id" : "800",
"Name" : "Jack"
},
{
"_id" : "530a7998-ba3f-4366-8d21-bb1ca688cfdb",
"Name" : "Ashley"
}
]}

Java 查询

    Query query = new Query();
query.addCriteria(Criteria.where("_id").is("5788bef4191fda5c9077af78"));
Update args = new Update();
args.addToSet("users", users);// users is a List<User>users.
args.addToSet("type", "GROUP");
mongoOps.upsert(query, args, Rooms.class, ROOMS);//mongoOps is MongoOperations

最佳答案

我们只需将列表传递给 addToset 。并设置更新字符串字段。

下面的代码有效并且文档已更新。

Update args = new Update(); args.addToSet("users", new BasicDBObject("$each", users)); args.set("type", "GROUP"); mongoOps.upsert(query, args, Rooms.class, ROOMS); 

关于java - 使用java使用upsert在mongodb中获取com.mongodb.MongoException$DuplicateKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38395261/

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