database - 在 mongodb 中执行更新操作时“或”中每个条件的结果
问题描述
Collection Name:- col
{
_id : ObjectId(".....1")
sid : "100"
name: "aaaa"
activity: "open"
}
{
_id : ObjectId(".....2")
sid : "100"
name: "bbbb"
activity: "open"
}
{
_id : ObjectId(".....3")
sid : "200"
name: "cccc"
activity: "close"
}
假设,我必须像这样更新集合:-
db.col.update(
{$or: [ {"sid" : "100"},
{"sid" : "100"}, # Redundant
{"sid" : "400"}, # Not in collection
{"sid" : "100", "name" : "aaaa"} # Redundant
]},
{$set: {"activity": "close"}}, {multi: true}
)
这将返回我 WriteResult({"nMatched" : 2, "nUpserted": 0, "nModified": 2})
我想得到这样的结果:-
WriteResult({"nMatched" : 2, "nUpserted": 0, "nModified": 2}) # For 1st condition
WriteResult({"nMatched" : 2, "nUpserted": 0, "nModified": 0}) # For 2nd condition
WriteResult({"nMatched" : 0, "nUpserted": 0, "nModified": 0}) # For 3rd condition
WriteResult({"nMatched" : 1, "nUpserted": 0, "nModified": 0}) # For 4th condition
我能得到这样的结果吗?我尝试在更新后使用聚合管道,但我无法获得冗余条件结果和“不在集合中”条件结果。有什么办法可以得到类似于上述结果的结果吗?
解决方案
推荐阅读
- google-apps-script - 由脚本设置的可安装 onOpen 触发器不会在 Apps 脚本中运行
- javascript - How to check given input values available or not ? in objects
- python - 如何使用 sns.catplot 可视化数据集的变化?
- powershell - PowerShell循环直到变量
- python - 带有 django 的 apache2 - 无法写入日志文件
- angular - Angular 6 Routing - 在命名的辅助路由器出口内查询参数
- java - 为什么 Java 和 Delphi AES 加密提供不同的结果?
- twilio-php - Twilio 短信不适用于网站托管帐户
- vb.net - 带有完整事件的 vb6 上的 Show.net 控件
- doctrine - 教义数组集合过滤器性能