我有几个文件,例如:
{ "_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) })