Mongodb:如何向集合添加新字段
您可以使用以下方法为 MongoDB 中集合中的每个文档添加新字段:
方法一:添加一个没有值的新字段
db.collection.updateMany({}, { $set :{" new_field ": null}})
方法2:添加具有特定值的新字段
db.collection.updateMany({}, { $set :{" new_field ": 10 }})
方法 3:使用现有字段中的值添加新字段
db.collection.updateMany( {}, [ {" $set ": {" name ": { " $concat ": [" $field1 ", " ", " $field2 "]}}} ] )
以下示例展示了如何通过收集团队使用每种方法并提供以下文档:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
示例 1:添加一个没有值的新字段
我们可以使用以下代码向集合中的每个现有文档添加一个名为“bounces”且值为空的新字段:
db.teams.updateMany({}, { $set :{" rebounds ": null}})
我们可以使用以下查询来显示第一个更新的文档:
db.teams.find().limit( 3 )
该查询返回以下文档:
{ _id: ObjectId("6189325896cd2ba58ce928e5"), team: 'Mavs', position: 'Guard', points: 31, rebounds: null } { _id: ObjectId("6189325896cd2ba58ce928e6"), team: 'Spurs', position: 'Guard', points: 22, rebounds: null } { _id: ObjectId("6189325896cd2ba58ce928e7"), team: 'Rockets', position: 'Center', points: 19, rebounds: null }
请注意,每个文档现在都有一个名为“bounces”且值为空的字段。
示例 2:添加具有特定值的新字段
我们可以使用以下代码向集合中的每个现有文档添加一个名为“bounces”、值为10的新字段:
db.teams.updateMany({}, { $set :{" rebounds ": 10 }})
我们可以使用以下查询来显示第一个更新的文档:
db.teams.find().limit( 3 )
该查询返回以下文档:
{ _id: ObjectId("6189325896cd2ba58ce928e5"), team: 'Mavs', position: 'Guard', points: 31, rebounds: 10 } { _id: ObjectId("6189325896cd2ba58ce928e6"), team: 'Spurs', position: 'Guard', points: 22, rebounds: 10 } { _id: ObjectId("6189325896cd2ba58ce928e7"), team: 'Rockets', position: 'Center', points: 19, rebounds: 10 }
请注意,每个文档现在都有一个名为“bounces”的字段,其值为 10。
示例 3:使用现有字段中的值添加新字段
我们可以使用以下代码添加一个名为“name”的字段,其值是现有“team”和“position”字段的串联:
db.teams.updateMany( {}, [ {" $set ": {" name ": { " $concat ": [" $team ", " ", " $position "]}}} ] )
我们可以使用以下查询来显示第一个更新的文档:
db.teams.find().limit( 3 )
该查询返回以下文档:
{ _id: ObjectId("618934cb96cd2ba58ce928ea"), team: 'Mavs', position: 'Guard', points: 31, name: 'Mavs Guard' } { _id: ObjectId("618934cb96cd2ba58ce928eb"), team: 'Spurs', position: 'Guard', points: 22, name: 'Spurs Guard' } { _id: ObjectId("618934cb96cd2ba58ce928ec"), team: 'Rockets', position: 'Center', points: 19, name: 'Rockets Center' }
请注意,每个文档现在都有一个名为“name”的字段,其值是“team”和“position”字段的串联。
注意:您可以在此处找到updateMany()函数的完整文档。
其他资源
以下教程解释了如何在 MongoDB 中执行其他常见任务:
MongoDB:如何重命名字段
MongoDB:如何删除字段
MongoDB:如何检查字段是否包含字符串
MongoDB:如何查询日期范围
MongoDB:如何使用“Like”正则表达式进行查询