Mongodb 如何从另一个值添加新字段?
我有一个“人物”收藏,里面有这样的文档:Mongodb 如何从另一个值添加新字段?,mongodb,Mongodb,我有一个“人物”收藏,里面有这样的文档: { _id: "...", name: "...", age: "..." } 我想对该集合的所有文档执行更新,以便它们有一个额外的字段“actualName”,其内容与“name”完全相同。我试过这个: db.people.updateMany({}, { $set { actualName: $name } }) 但我得到了这个错误: 未定义$name 我是在MongoSH(
{
_id: "...",
name: "...",
age: "..."
}
我想对该集合的所有文档执行更新,以便它们有一个额外的字段“actualName”,其内容与“name”完全相同。我试过这个:
db.people.updateMany({}, { $set { actualName: $name } })
但我得到了这个错误:
未定义$name
我是在MongoSH(指南针)上做的。你可以用一些东西
工作从Mongo 4.2开始,您可以使用
聚合管道
和update()
方法使用其他字段的值更新字段。您可以这样做:
db.collection.update({},
[
{
"$set": {
"actualName": "$name"
}
}
],
{
"multi": true
})
下面是一个工作示例:请看这将有所帮助,您不能在简单的更新查询中将内部字段用作另一个字段的值,您可以尝试使用聚合管道进行更新。还有一点相似,我的上帝。。。我已经尝试了所有带引号和聚合的组合,但这次没有。非常感谢。
db.collection.update({},
[
{
"$set": {
"actualName": "$name"
}
}
],
{
"multi": true
})