我正在尝试使用mongo-java驱动程序进行批量操作,主要思想是在id为null时插入文档或以其他方式更新。插入操作正在运行,但是当涉及到更新时,不会应用更改(我已经尝试过upsert操作,但它不起作用)。
这是我的代码:
public BulkWriteResult bulkStockUnitUpsert(List<StockUnit>stockUnits) {
BulkOperations ops = mongoOperations.bulkOps(BulkMode.UNORDERED, StockUnit.class);
for (StockUnit stockUnit : stockUnits) {
if(stockUnit.getId() != null) {
Query query = new Query();
query.addCriteria(Criteria.where("_id").is(stockUnit.getId()));
Update update = new Update();
update.set("price", stockUnit.getPrice());
update.set("product", stockUnit.getProduct().getId());
update.set("quantity", stockUnit.getQuantity());
update.set("sku", stockUnit.getSku());
update.set("variant", stockUnit.getVariant());
ops.updateOne(query, update);
} else {
ops.insert(stockUnit);
}
}
return ops.execute();
}