我可以帮助您进行翻译。以下是需要翻译的内容:
除了被注释掉的'errorCodes'行以外,一切正常。我尝试创建的逻辑是:“如果结果代码以A、B、S或N开头,则将错误代码集添加到结果原因代码的值中,否则无需添加”。对于上面的记录,errorCodes集合应该包含:[S1002, A1001]。
我有一个包含以下文档的集合:
{ipAddr: '1.2.3.4',
"results" : [
{
"Test" : "Sight",
"Score" : "FAIL",
"Reason" : "S1002"
},
{
"Test" : "Speed",
"Score" : "FAIL",
"Reason" : "85"
},
{
"Test" : "Sound",
"Score" : "FAIL",
"Reason" : "A1001"
}
],
"finalGrade" : "FAILED"
}
这是我正在尝试编写的聚合查询,我想要做的事情(见注释部分)是为每个ipAddr创建一个分组字段,其中包含'Reason / Error'代码,但仅当Reason代码以特定字母开头时,并且仅添加一次该代码。我尝试了以下代码: db.aggregate([
{$group:
{ _id: "$ipAddr",
attempts: {$sum:1},
results: {$push: "$finalGrade"},
// errorCodes: {$addToSet: {$cond: ["$results.Reason": /[A|B|S|N.*/, "$results.Reason", ""]}},
finalResult: {$last: "$finalGrade"} }
}
]);
除了被注释掉的'errorCodes'行以外,一切正常。我尝试创建的逻辑是:“如果结果代码以A、B、S或N开头,则将错误代码集添加到结果原因代码的值中,否则无需添加”。对于上面的记录,errorCodes集合应该包含:[S1002, A1001]。