前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET 云原生架构师训练营(模块二 基础巩固 MongoDB 更新和删除)--学习笔记

.NET 云原生架构师训练营(模块二 基础巩固 MongoDB 更新和删除)--学习笔记

作者头像
郑子铭
发布2021-01-13 16:00:35
4550
发布2021-01-13 16:00:35
举报

2.5.4 MongoDB -- 更新和删除

  • 整体更新
  • 更新字段
  • 字段操作
  • 数组操作
  • 删除

https://docs.mongodb.com/manual/reference/operator/update/

  • updateOne
  • updateMany
  • replaceOne

整体更新

代码语言:javascript
复制
db.questions.replaceOne({},{})

更新字段

代码语言:javascript
复制
db.author.updateOne({"name":"mingson"},
    {
        $set: {"age": 20},
        $inc: {"view", -2}
    }
)

字段操作

Name

Description

$currentDate

设置为当前时间

$inc

原子级增减操作

$min

当传入的值比数据库中的值小时才更新

$max

当传入的值比数据库中的值大时才更新

$mul

原子级相乘

$rename

重命名字段

$set

设置字段值

$setOnInsert

仅当

$unset

移除字段

代码语言:javascript
复制
db.questions.updateOne({"tags": {$in: ["c#"]}},
    {
        $inc: {"view": NumberInt(-2)},
        $set: {"title": "第一个问题updated"}
    }
)

数组操作

Name

Description

$

更新数组的第一个元素

$[]

更新数组的所有元素

array.[index]

更新指定下标元素

$addToSet

添加元素到数组(当元素不存在于原来的数组当中)

$pop

移除第一个或者最后一个元素

$pull

移除符合条件的数组元素

$pullAll

移除指定元素

$push

添加到最后

$each

添加多个元素

$position

指定插入的位置

$slice

对数据切割

$sort

对数组排序

$[]

更新指定条件的元素

代码语言:javascript
复制
// 把第一个包含 test2 的数组的元素改为 test3,即把数组元素里面第一个 test2 改为 test3,而不是数组的第一个元素
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$set: {"tags.$": "test3"}})

// 更新所有元素,所有 test2 更新为 test3
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$set: {"tags.$[]": "test3"}})

// 更新指定下标元素
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$set: {"tags.2": "c#"}})

// 添加元素到数组(当元素不存在于原来的数组当中)
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$addToSet: {"tags": "c#"}})

// 移除第一个
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$pop: {"tags": -1}})

// 移除最后一个元素
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$pop: {"tags": 1}})

// 移除符合条件的数组元素
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$pull: {"tags": {$in: ["c#"]}}})

// 移除指定元素
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$pullAll: {"tags": ["test3", "asp.net core"]})

// 添加到最后
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$push: {"tags": "test3"})

// 添加多个元素
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$each: {"tags": ["c#", "test3"]})

// 指定插入的位置
db.questions.updateOne({"tags": {$in: ["test2"]}}, {$push: {"tags": {$each: ["c#", "test3"], $position: 0}})

// 对数据切割,对数组排序
db.students.update(
   { _id: 5 },
   {
     $push: {
       quizzes: {
          $each: [ { wk: 5, score: 8 }, { wk: 6, score: 7 }, { wk: 7, score: 6 } ],
          $sort: { score: -1 },
          $slice: 3
       }
     }
   }
)

// 更新指定条件的元素,把 answers 中 content 为 回答一 的设置为 回答
db.questions.updateOne({"tags": {$in: ["test2"]}}, {set: {"answers.$[elem].content": "回答", {"arrayFilters": [{"elem.content": "回答一"}]}}})

删除

https://docs.mongodb.com/manual/tutorial/remove-documents/

代码语言:javascript
复制
db.inventory.deleteOne( { status: "D" } )

db.inventory.deleteMany({ status : "A" })

课程链接

.NET云原生架构师训练营讲什么,怎么讲,讲多久

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.5.4 MongoDB -- 更新和删除
    • 整体更新
      • 更新字段
        • 字段操作
          • 数组操作
            • 删除
            • 课程链接
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档