有没有办法实现以下内容:-
MyDocument {
String docId;
Integer bal;
Set<String> actions;
}
-
[a1, a2]
到
[a1, a2, a3]
-
bal
所以我需要确保
$inc
也为
字段。
单程
平衡
使用一个更新查询:
Bson searchFilter = Filters.in("docId", <someId>);
// couldn't find a cleaner way of increment in mongo-java
BasicDBObject modifiedObject = new BasicDBObject();
modifiedObject.put("$inc", new BasicDBObject().append("bal",2)); // any value to increment
mongoCollection.updateOne(searchFilter, modifiedObject);
此后,我可以对
actions
更新。
可能是用这两个字段更新了文档。其中:
-
我不得不这么做
find
,在应用程序上执行计算。
-
那么
update
包含两个计算字段的文档。
在上述两种方法中,我都无法避免查询数据库两次。目前是否有其他解决方法可以实现这一点?
同时,我也关心原子性与上述组合的关系
[UPDATE + UPDATE]
或
[GET + UPDATE]
如果需要进一步的细节,一定要告诉我。