public void updateDocStatusToException(List<CacheInnerSaleDto> exceptionInnerSaleDtos)
{
if (CollectionUtils.isNotEmpty(exceptionInnerSaleDtos))
{
/// 方法一
/// exceptionInnerSaleDtos.forEach(exceptionInnerSaleDto ->
/// {
/// Query query = new Query();
/// query.addCriteria(Criteria.where("activityCode").is(exceptionInnerSaleDto.getActivityCode())
/// .and("commodityNo").is(exceptionInnerSaleDto.getCommodityNo()).and("goodsNo")
/// .is(exceptionInnerSaleDto.getGoodsNo()));
/// Update update = new Update();
/// update.set("status", InnerSaleDataStatusEnum.EXCEPTION.getStatus());
/// update.set("sendStatus", DataSendStatusEnum.SENT_FAILED.getStatus());
/// update.set("errorMsg", exceptionInnerSaleDto.getErrorMsg());
/// mongoTemplate.updateMulti(query, update, "cache_inner_sale_document");
/// });
/// 方法二
String collectionName = "cache_inner_sale_document";
List<Pair<Query, Update>> updateList = new ArrayList<>();
BulkOperations operations = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, collectionName);
exceptionInnerSaleDtos.forEach(exceptionInnerSaleDto ->
{
// 需要根据具体的业务场景来添加查询条件
Query query = new Query();
query.addCriteria(Criteria.where("activityCode").is(exceptionInnerSaleDto.getActivityCode())
.and("commodityNo").is(exceptionInnerSaleDto.getCommodityNo()).and("goodsNo")
.is(exceptionInnerSaleDto.getGoodsNo()));
// 需要根据具体的业务场景通过newEntityList最新数据更新oldEntityList的某些数据
Update update = new Update();
update.set("status", InnerSaleDataStatusEnum.EXCEPTION.getStatus());
update.set("sendStatus", DataSendStatusEnum.SENT_FAILED.getStatus());
update.set("errorMsg", exceptionInnerSaleDto.getErrorMsg());
Pair<Query, Update> updatePair = Pair.of(query, update);
updateList.add(updatePair);
});
operations.updateMulti(updateList);
operations.execute();
}
}
mongoDB 批量修改方法
最新推荐文章于 2023-08-14 13:13:37 发布