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”正则表达式进行查询

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注