mongosh - $concat用于updateOne方法中的一个字段



我想根据电子邮件字段的id更新一个特定文档,但我不想完全覆盖电子邮件字段。相反,我只想在它旁边添加一个字符串(将它与另一个字符串连接),即我需要电子邮件的当前值并在它旁边添加一个字符串。

例如,如果文档中的电子邮件字段是example@email.com,我想将其更新为example@email.com___deleted

这是我尝试过的,但是它显示了一个错误

db.testme.updateOne({_id: ObjectId("626bc5ddd6e2abe315ff8c76")}, {$set: {$concat: {email: ['$email', '___deleted']}} })

MongoServerError: $($)前缀字段'$concat' in '$concat'在更新的替换文档的上下文中不允许。考虑使用带有$replaceWith的聚合管道。

在聚合管道中使用Update。

db.testme.updateOne({
_id: ObjectId("626bc5ddd6e2abe315ff8c76")
},
[
{
$set: {
email: {
$concat: [
"$email",
"___deleted"
]
}
}
}
])

Mongo Playground示例

最新更新