$concat 用于 mongosh updateOne 方法中的一个字段
$concat for one field in mongosh updateOne method
我想根据其 ID 更新电子邮件字段的特定文档,但我不想完全覆盖电子邮件字段。相反,我只想在它旁边添加一个字符串(将它与另一个字符串连接起来),即我需要电子邮件的当前值并在其旁边添加一个字符串。
例如,如果文档中的电子邮件字段是 example@email.com
,我想将其更新为 example@email.com___deleted
。
这是我试过的方法,但显示错误
db.testme.updateOne({_id: ObjectId("626bc5ddd6e2abe315ff8c76")}, {$set: {$concat: {email: ['$email', '___deleted']}} })
MongoServerError: The dollar ($) prefixed field '$concat' in '$concat'
is not allowed in the context of an update's replacement document.
Consider using an aggregation pipeline with $replaceWith.
使用Update with Aggregation Pipeline.
db.testme.updateOne({
_id: ObjectId("626bc5ddd6e2abe315ff8c76")
},
[
{
$set: {
email: {
$concat: [
"$email",
"___deleted"
]
}
}
}
])
我想根据其 ID 更新电子邮件字段的特定文档,但我不想完全覆盖电子邮件字段。相反,我只想在它旁边添加一个字符串(将它与另一个字符串连接起来),即我需要电子邮件的当前值并在其旁边添加一个字符串。
例如,如果文档中的电子邮件字段是 example@email.com
,我想将其更新为 example@email.com___deleted
。
这是我试过的方法,但显示错误
db.testme.updateOne({_id: ObjectId("626bc5ddd6e2abe315ff8c76")}, {$set: {$concat: {email: ['$email', '___deleted']}} })
MongoServerError: The dollar ($) prefixed field '$concat' in '$concat' is not allowed in the context of an update's replacement document. Consider using an aggregation pipeline with $replaceWith.
使用Update with Aggregation Pipeline.
db.testme.updateOne({
_id: ObjectId("626bc5ddd6e2abe315ff8c76")
},
[
{
$set: {
email: {
$concat: [
"$email",
"___deleted"
]
}
}
}
])