非关系型数据库MongoDB入门 (4)

非关系型数据库MongoDB入门

  上面的更新方法传入的参数如下:
    (1) 过滤条件文档:类似于sqlwhere决定更些哪些文档      

    (2) 更新文档:类似于sqlset指定要执行的修改或替换文档

    (3) 选项文档:若包含upserttrue,当没有匹配到文档则会创建一个新文档并插入字段

  更新文档中指定的字段:

    使用$set操作符更新favorites.artist字段为"Pisanello",更新type字段值为3.

    使用$currentDate 操作符更新 lastModified 字段的值到当前日期。如果 lastModified 字段不存在, $currentDate 会创建该字段。下面若使用updateOne函数则只会更新匹配得到的第一个文档

      db.users.updateMany(  

        { "favorites.artist": "Picasso" },

          {

            $set: { "favorites.artist": "Pisanello", type: 3 },

            $currentDate: { lastModified: true }

        }

      )

    若使用update函数来进行更新操作,则需要在选项文档中添加multi:true来指定更新单条还是所有的数据,默认更新单条数据

      db.users.update(

        { "favorites.artist": "Pisanello" },

        {

          $set: { "favorites.food": "pizza", type: 0,  },

          $currentDate: { lastModified: true }

        },

        { multi: true }

      )

  文档替换:

    使用replaceOne函数进行替换操作:将nameabc匹配到的第一个文档替换为新文档

      db.users.replaceOne(

        { name: "abc" },

        { name: "amy", age: 34, type: 2, status: "P", favorites: { "artist": "Dali", food: "donuts" } }

      )

    若update函数不使用操作符则会执行替换操作

      db.users.update(

        { name: "xyz" },

        { name: "mee", age: 25, type: 1, status: "A", favorites: { "artist": "Mati", food: "ma" } }

      )

    注意:替换文档可以不同于原文档的字段。在替换文档中由于_id字段是不变的所以可以省略_id字段,若包含,则值必须和当前值相同

==========================================================================================

  ④删除文档:

非关系型数据库MongoDB入门


  上面的过滤参数和查询的时候相同,
remove方法将<justone>参数设置为1来删除匹配到的第一个文档,默认会删除所有匹配到的文档

  MongoDB入门教程到此结束,接下来会有MongoDB和springboot项目的集成使用案例

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxdsy.html