我使用过Java spring-boot
版本1.5.14.RELEASE
,而spring-data-mongodb
版本是1.10.13-RELEASE
。我正在尝试进行数据存档。
我将通过beginId
和endId
在主MongoDB中找到数据,然后将数据同步到其他库中,最后,我将通过beginId
和{{ 1}}。
endId
有时,数据删除失败,导致下次备份时出现public int del(ObjectId beginId, ObjectId endId, String collectionName) {
Criteria criteria = getCriteria(beginId, endId);
WriteResult writeResult = mongoTemplate.remove(Query.query(criteria), collectionName);
return writeResult.getN();
}
private Criteria getCriteria(ObjectId beginId, ObjectId endId) {
Date endDate = DateUils.getDayEnd(endId.getDate());
Criteria criteria = Criteria.where("_id").lte(endId);
if (beginId != null) {
criteria.gte(beginId);
}
criteria.and("updateTime").lte(endDate);
return criteria;
}
。
答案 0 :(得分:0)
代替使用静态Criteria函数,而将Criteria类对象用作:
private Criteria getCriteria(ObjectId beginId, ObjectId endId) {
Date endDate = DateUils.getDayEnd(endId.getDate());
Criteria criteria = new Criteria();
if (beginId != null) {
criteria.and("_id").lte(endId).gte(beginId);
} else {
criteria.and("_id").lte(endId);
}
criteria.and("updateTime").lte(endDate);
return criteria;
}