public void refreshTaxCode1() {
Query query = new Query();
query.addCriteria(Criteria.where("status").is(SkuStatus.ACTIVE.getCode()))
.addCriteria(Criteria.where("sku_type").in(SkuType.MASTER.getCode(), SkuType.SIMPLE.getCode()));
CloseableIterator<OnlineProductBase> stream =
mongoTemplate.stream(query, OnlineProductBase.class);
MongoCollection<Document> productCollection = mongoTemplate.getCollection("online_product");
// Iterators 使用 google guava包 批量执行
Iterators.partition(stream, 20).forEachRemaining(each -> {
List<WriteModel<Document>> bulkWrites = new ArrayList<>();
each.stream().forEach(elm -> {
BasicDBObject queryDBObject = new BasicDBObject("sku_number", elm.getSkuNumber());
Document document = new Document();
Document append = new Document().append("mik_tax_code", "999")
.append("tax_code_assignment_confidence_bucket", TaxCodeConfidenceType.UNPUBLISHED.getValue());
document.put("$set", new Document("cost", append).append("status", SkuStatus.AWAITING_TAX_CODE_ASSIGNMENT.getCode()));
UpdateOneModel<Document> updateOneModel = new UpdateOneModel<Document>(queryDBObject, document);
bulkWrites.add(updateOneModel);
});
productCollection.bulkWrite(bulkWrites);
});
}
Mongodb 执行批量语句
最新推荐文章于 2024-03-09 17:52:29 发布