对于 MongoDB 而言,数据的更新基本上是一件很麻烦的事情

在 MongoDB 里面对于数据的更新操作提供了两类函数:save()update()

函数的基本使用

如果要修改数据,最直接的使用函数就是 update(),但是这个函数的语法很麻烦

  • 语法:db.集合.update(更新条件, 新的对象数据(更新操作符), upsert, multi)
  • upsert:如果要更新的数据不存在,则增加一条新内容(true 为增加,false为不增加)
  • multi:是否更新满足条件的所有记录(true全部更新,false只更新第一行记录)

将年龄为 19 岁的第一个人的成绩更新为 100 分

> db.students.update(
      {"age": 19},
      {"$set": {"score": 100}}
  , false, false);

将年龄为 19 岁的人的成绩都更新为 100 分

> db.students.update(
      {"age": 19},
      {"$set": {"score": 100}}
  , false, true);

更新不存在的数据

> db.students.update(
      {"age": 1000},
      {"$set": {"name": "我不存在"}}
  , true, false);

除了 update() 函数之外,MongoDB 还提供了 save() 函数,这个函数的功能与更新不存在的内容相似

使用 save() 操作

> db.students.save({"_id": ObjectId("5bfd431c9f238868a3237ef9"), "age": 100});

如果操作中存在 _id 字段,则变为 update();没有 _id 则为 insert()