遇到的问题---MongoDB的java驱动的坑---启用副本集后id的update无效

情况

我们有文档如下:
{
“_id”: ObjectId(‘59f189e9861afe7aa6d684b0’),
“mobile”: “12345678”,
“reason”: 18,
“createOper”: “zhangzequan”,
“createDate”: ISODate(‘2017-10-26T07:08:25.669Z’)
}

在代码中需要对该文档进行更新,使用代码如下:
private void dealt(String resampleId, String operator, String remark) {
Update update = new Update();
update.set(“dealtOper”, operator);
update.set(“dealtDate”, FormatDate.now());
if (!StringUtils.isEmpty(remark)) {
update.set(“remark”, remark);
}
mongoOperations.updateFirst(Query.query(Criteria.where(“id”).is(resampleId)),
update,
Resample.class);
}

之前一直没问题,可以正常更新文档。
突然有一天 更新失效,而且也不报错。


原因

经过对比排查后 发现 启用副本集之后 id的update就失效了。find使用id查询正常。


解决方式

你可能感兴趣的:(mongodb,java,遇到问题解决方案集锦)