使用MongoTemplate时 - collection.findAndModify它将删除所有文档字段,并仅保留更新的列。
为什么?
如何部分更新文档中的字段?
DBCollection collection = mongoTemplate.getCollection("company");
DBObject query= new BasicDBObject("companyId","1");
DBObject update= new BasicDBObject("phoneNumber","404-525-3928");
DBObject result = collection.findAndModify(query, update);
此时 - 从公司1中删除所有字段...
解决方法是转到DB,获取公司1文档更新字段并保存...,
但是如果我需要更新10K呢?
答案 0 :(得分:1)
您需要更新文档中的$set
运算符。您在此使用该update operators和其他{{3}},否则您指定的内容将替换当前包含的任何文档:
DBCollection collection = mongoTemplate.getCollection("company");
DBObject query= new BasicDBObject("companyId","1");
DBObject update= new BasicDBObject(
"$set", new BasicDBObject("phoneNumber","404-525-3928")
);
DBObject result = collection.findAndModify(query, update);