我想尝试根据文档中两个布尔字段的逻辑或进行分组。基本上,文档有两个可以表示错误条件的字段,如果其中一个字段为 true,那么我想在 id 为 true 的情况下创建一个状态字段,但如果两者都不为 true,那么我希望状态为 false。我希望将其包含在分组中,因为我需要分别聚合错误数据而不是成功条件数据。
我正在处理以下小组声明:
$group: {
_id: {
timestamp: {
$dateToString: {
format: "%Y-%m-%d %H:%M:%S.%LZ",
date: {
$subtract: ["$requestDtsCal", {
$mod: [{
$subtract: ["$requestDtsCal", baseDate]
}, divisor]
}]
}
}
},
serviceKey: "$serviceKey",
operationuuid: "$operationuuid",
contractKey: "$contractKey",
bindingTemplateKey: "$bindingTemplateKey",
containerKey: "$containerKey",
status: "$isSoapFaultByMP"
// status: { $or: [ {"$isSoapFaultByMP" : {$eq: true}}, {"$isSoapFaultByNextHop": {$eq: true}} ]}
},
正如所写,它可以很好地识别“isSoapFaultByMP”字段是真还是假。如果我尝试将注释掉的变体与逻辑 OR 一起使用,则会失败并显示以下消息:
assert: command failed: {
"ok" : 0,
"errmsg" : "invalid operator '$isSoapFaultByMP'",
"code" : 15999
}
对我做错了什么有什么想法,或者这是否可能?顺便说一句,这是 Mongo 3.2.11 的情况。
Thanks,
Ian