我有几个文件,例如:
{
"_id" : "60d3fcb6077b0a41e090ecc9",
"vendor" : "Best",
"test_name" : "Number Sequence",
"discipline" : "early math"
},
{
"_id" : "60d3fcb6077b0a41e090edd7",
"vendor" : "Best",
"test_name" : "Value Places",
"discipline" : "early math"
}
我希望将EM:附加到test_name字段,无论该字段中已经存在什么,只要它与vendor和discipline字段匹配。
以下是我迄今为止所做的尝试:
db.getCollection("assessments_1234").aggregate(
[
{
"$match" : {
"vendor" : "Best",
"discipline" : "early math"
}
},
{
"$set" : {
"test_name" : {
"$cond" : {
"if" : {
"$regexMatch" : {
"input" : "$test_name",
"regex" : /.* /
}
},
"then" : {
"$replaceOne" : {
"input" : "$test_name",
"find" : "",
"replacement" : "EM: "+"$test_name"
}
},
"else" : "$test_name"
}
}
}
}
],
{
"allowDiskUse" : false
}
).forEach(function(record) {
print(record.test_name)
db.assessments_1234.replaceOne({_id: record._id}, record)
})