我试图一次更新单个MongoDB文档中的多个字段,但只更新一个字段。 我有一个集合用户,其中用户由customer_user_id唯一定义。我想更新某个用户的birth_year和国家字段。Java + MongoDB:更新文档中的多个字段
这是我在做什么:
// Define the search query:
DBCollection col = md.getDb().getCollection("user");
BasicDBObject searchQuery = new BasicDBObject("customer_user_id", customer_user_id);
// Define the update query:
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set", new BasicDBObject().append("birth_year", birth_year);
updateQuery.append("$set", new BasicDBObject().append("country", country);
log.info("Update query: " + updateQuery);
col.update(searchQuery, updateQuery);
遗憾的是,只有国家字段更新,和登录updateQuery看起来是这样的:
更新查询:{“$集“:{”country“:”Austria“}}
@wawek,我想你的文档的领域的做法,并没有没有更新。我用'_id'查询文件,它存在并试图推送特定字段的更新,但没有任何反应。 代码:'BasicDBObject searchQry = new BasicDBObject(“_ id”,epID); BasicDBObject updateFields = new BasicDBObject(); updateFields.append(“isExpired”,true); updateFields.append(“fetchStatus”,FetchStatus.FETCHED.getID()); BasicDBObject setQuery = new BasicDBObject(); setQuery.append(“$ set”,updateFields); UpdateResult updRes = dbC_Episodes.updateOne(searchQry,setQuery);' –