MongoDB通过bulkWrite()批量操作给集合中所有数据记录新增一个相同的键值对

需求阐述:

已有一个csv格式数据文件,导入到source_data数据库中的corporation集合中,需要对其每条记录均增加一个键值对time:"2019/3/20",以指明该文件的日期

思路:

MongoDB客户端命令行

use source_data
db.corporation.help()

查询到bulkWrite()是进行批量操作

代码:

db.corporation.bulkWrite([{updateMany:{filter:{},update:{$set:{time:ISODate(20190320)}},upsert:1}}])

MongoDB通过bulkWrite()批量操作给集合中所有数据记录新增一个相同的键值对_第1张图片

以上信息表明操作成功

  • 传入的对象是一个列表
  • 列表内部为json格式
  • updateMany——操作
  • filter——过滤器,{}中写查询对象,由于我的代码面向所有数据记录,故只用{}
  • update——更新操作,$set保证更新正确进行
  • upsert:1——更新对象不存在则进行插入操作

更新结果:

MongoDB通过bulkWrite()批量操作给集合中所有数据记录新增一个相同的键值对_第2张图片

易错点:

命令行输入mongo之后,需要use 数据库名,先转到需要操作的数据库,否则默认在test数据库操作

MongoDB通过bulkWrite()批量操作给集合中所有数据记录新增一个相同的键值对_第3张图片

matchedCount为0应当引起注意,匹配数为零也间接说明了操作的数据库非目标数据库

你可能感兴趣的:(MongoDB)