Java 为什么在保存操作时删除monogo收集文档?
假设我有Java 为什么在保存操作时删除monogo收集文档?,java,mongodb,spring-boot,mongodb-query,Java,Mongodb,Spring Boot,Mongodb Query,假设我有 User data=新用户(id=6505ab53cd6fb759,name=Hello,age=30,address=xyz) 和一个编辑列表,如: [User(id=6505ab53cd6fb759, name=Hello, age=40, address=xyz`)] &mongo集合名称“userInfo” 以下代码是实现的代码: public Boolean updateUserInfo(User[] editedData) { try { Str
User data=新用户(id=6505ab53cd6fb759,name=Hello,age=30,address=xyz
)
和一个编辑列表,如:
[User(id=6505ab53cd6fb759, name=Hello, age=40, address=xyz`)]
&mongo集合名称“userInfo”
以下代码是实现的代码:
public Boolean updateUserInfo(User[] editedData) {
try {
String collectionName = "userInfo";
for (User data : editedList) {
String objIdStr = data.getId();
ObjectId objectId = new ObjectId(objIdStr);
// fetch the document
Query query = new Query(Criteria.where("_id").is(objectId));
User dBData = mongoTemplate.findOne(query, User.class,
collectionName);
User currentObj = dBData;
// Here some not written code,but have to write later
mongoTemplate.save(data, collectionName);
}
}
在上述代码中,for循环'data'包含已编辑的数据,'dBData'包含尚未更改的当前数据,保存操作后,'userInfo'中相应的'id'的dBData将更新为'age'=40
但是,它没有更新文档,而是从“用户信息”集合中删除该文档
为什么会发生这种不正常的事情?解决方案是什么?如何在运行保存操作时防止删除?您是否有我们可以运行的代码片段来演示问题?@Joe,请检查。我添加了实现的代码您使用
save
而不是update
有什么原因吗?此外,该代码段似乎正在dbData
中检索文档,但保存数据
是否正确?实际上,我不确定哪个字段的数据被修改或编辑,任何字段都可以修改,这就是我使用“保存”操作的原因。使用“保存”操作时会导致什么问题?