gpt4 book ai didi

java - Mongodb:无法保存添加到 BasicDBList 中的新元素

转载 作者:行者123 更新时间:2023-12-01 23:54:32 25 4
gpt4 key购买 nike

我试图向 BasicDBList 数组添加一个元素并将其保存回 Mongodb,但是当我检查结果时,它没有被写入。我做错了什么?我使用java驱动程序版本2.7.2。

DBObject dbObject = coll.findOne(dbQuery);

BasicDBList unreadMsgs = (BasicDBList) dbObject.get("unreadMsgs");

Logger.debug("before incrementing unreadMsgs" + dbObject.toString());

unreadMsgs.add(new BasicDBObject("id", 1).append("unreadMsg", 1));
Logger.debug("after incrementing unreadMsgs : " + dbObject.toString());
coll.save(dbObject);
Logger.debug("check result: " + coll.findOne(dbQuery).toString());

在增加 unreadMsgs 之前{ "_id": { "$oid": "515c5eb88e3278e9c9d55867"} , "unreadMsgs": [ ]}

增加 unreadMsgs : { "_id": { "$oid": "515c5eb88e3278e9c9d55867"} , "unreadMsgs": [ { "id": 1 , "unreadMsg": 1}]}

检查结果:{ "_id": { "$oid": "515c5eb88e3278e9c9d55867"} , "unreadMsgs": [ ]}

最佳答案

问题是 coll.save(dbObject) 没有更新任何内容。

它用作插入,并且由于 _id 已存在于集合中,因此您将收到重复 key 异常(只是由于配置而看不到它)。

您必须使用更新,here是怎么回事

关于java - Mongodb:无法保存添加到 BasicDBList 中的新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798820/

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