广告
返回顶部
首页 > 资讯 > 数据库 >更新文档(update)
  • 357
分享到

更新文档(update)

2024-04-02 19:04:59 357人浏览 八月长安
摘要

修改一条简单文档:db.getCollection("test").insert(     {         title: "商品购物单1",         amount: 35,         de

更新文档(update)



修改一条简单文档:

db.getCollection("test").insert(
    {
        title: "商品购物单1",
        amount: 35,
        detail: [
            {name: "苹果", price: 22},
            {name: "面粉", price: 18}
        ]
    }
);
//修改符合条件的一条(插入的,符合条件的最早一条)
db.getCollection("test").update(
    {
        title: "商品购物单1"
    },
    {
        $set: {title: "商品购物单2"}
    }
);

(update,修改符合条件的一条(插入的,符合条件的最早一条))


更新字段(增加,减少):

db.getCollection("test").update(
    {
        title: "商品购物单1"
    },
    {
        $inc: {"amount": 5}
    }
);

(update,修改符合条件的一条(插入的,符合条件的最早一条)。$inc操作符后面的值,可以是正数、负数,也可以是小数)


改为指定倍数:

db.getCollection("test").update(
    {
        title: "商品购物单1"
    },
    {
        $mul: {"amount": 2}
    }
);

(update,修改符合条件的一条(插入的,符合条件的最早一条)。$mul操作符后面的值,可以是正数、负数,也可以是小数)


更新字段/键名

db.getCollection("test").insert(
    {
        _id: 66,
        titlss: 35,
        amount: 50.5,
        detail: [
            {name: "苹果", price: 22},
            {name: "面粉", price: 18}
        ]
    }
);
db.getCollection("test").update(
    {
        _id: 66
    },
    {
        $rename: {"titlss": "title"}
    }
);

($rename 操作符。在键名大量出错的情况下尤其有用)


将_id为66,title为35的这一列去掉(其他数据条的title不变)

db.getCollection("test").update(
    {
        _id: 66
    },
    {
        $unset: {"title": "35"}
    }
);

更新文档(update)(其他数据条的title不变,title为35的变为N/A)


_id:66文档的amount由50.5修改为50:

db.getCollection("test").update(
    {
        _id: 66
    },
    {
        $unset: {"title": "35"}
    }
);

(将$min给出的值与当前文档字段值进行比较,当给定值较小时则修改当前文档值为给定值)


_id:66文档的amount由50修改为50.5:

db.getCollection("test").update(
    {
        _id: 66
    },
    {
        $max: {"amount": 50.5}
    }
);

(将$max 给出的值与当前文档字段值进行比较,当给定值较大时则修改当前文档值为给定值)


ISODate时间方法:

db.getCollection("test").insert(
    {
        _id: 69,
        title: "商品购物单6",
        amount: 80,
        unit: "元",
        detail: [
            {name: "苹果", price: 22},
            {name: "面粉", price: 18}
        ],
        lasttime: ISODate("2018-07-21 14:53:56")
    }
);


修改一条文档里的数组和嵌套文档:

db.getCollection("test").insert(
    {
        _id: 80,
        title: "商品购物单80",
        amount: 80,
        unit: "元",
        detail: [
            {name: "苹果", price: 22},
            {name: "面粉", price: 18}
        ],
        lasttime: ISODate("2018-07-21 14:53:56"),
        overview: {shop: "丁丁电子商务平台", shopno: 5, address:"地球村"}
    }
);
db.getCollection("test").update(
    {
        _id: 80
    },
    {
        $set: {
            "detail.1": {name: "大米", price: 16},
            "overview.address": "某海"
        }
    }
);

更新文档(update)

(mongoDB数组下标从0开始,"detail.1"代表数组第2个元素)

(引用数组或嵌入文档对象时,都需要加""号,如"detail.1","overview.address",中间用点号隔离)

修改数组的内容,要有


默认情况下update命令都执行修改一条文档动作,我们也希望能同时修改所有符合条件的文档记录,这里需要采用multi选项:

db.getCollection("test").update(
    {
        "detail.name": "面粉",
        "detail.price": {$lte: 30}
    },
    {
        $set: {
            "detail.1": {name: "面粉", price: 666},
            "overview.address": "这里"
        }
    },
    {
        multi: true
    }
);

(将面粉价格小于等于30的记录的detail数组第二个(下标为1)的面粉价格改为40)


find()查询条件操作符,可以用在update操作条件上

db.getCollection("test").update(
    {
        "detail.name":"面粉", "detail.price": {$lte: 30}
    },
    {
        $set: {
            "detail.1": {name:"面粉", price:40}
        }
    },
    {
        multi: true //满足条件的都修改
    }
);


Update命令在特定情况下,可以增加文档的宇段,甚至实现insert命令功能。这个特定条件是要修改的文档没有要修改的字段,而且update命令带upsert选项

db.getCollection("test").update(
    {
        _id: 80
    },
    {
        $set: {
            "detail.1": {name:"面粉", price:10}, //修改后的
            danwei: "美元" //新增加字段
        }
    },
    {
        upsert: true
    }
);


writeConcern选项为update修改数据异常时,提供出错处理机制

db.getCollection("test").update(
    {
        item: ""
    },
    {
        $set: {
            title: "测试", price: 50
        }
    },
    {
        multi: true,
        writeconcern: {w: "majority", wtimeout:3000}
    }
);

(当update命令在5秒内没有执行完成时,取消该命令操作,并返回错误值)


db.collection.updateOne()。与update()唯一的区别是命令语法里少了一个multi :<boolean>选项, 也就是updateOne()只适用于符合条件的一条文档的修改任务。

db.collection.updateMany()。与update()唯一的区别是命令语法里少了一个multi:<boolean>选项, 也就是updateMany()只适用于符合条件的多条文档的修改任务。

db.collection.replaceOne()。与update()的区别有两处,一个没有multi:<boolean>选项;另外一个在第二个参数Cupdate的<update>)里不能有更新操作符。

更新文档(update)

您可能感兴趣的文档:

--结束END--

本文标题: 更新文档(update)

本文链接: https://www.lsjlt.com/news/40377.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 更新文档(update)
    修改一条简单文档:db.getCollection("test").insert(     {         title: "商品购物单1",         amount: 35,         de...
    99+
    2022-10-18
  • 怎么在MongoDB中使用update()方法更新文档
    怎么在MongoDB中使用update()方法更新文档?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、update()命令db.collection.update(&nb...
    99+
    2023-06-14
  • MongoDB(五):更新文档、删除文档
    1. 更新文档 MongoDB的uptade()和save()方法用于将集合中的文档更新。update()方法更新现有文档中的值,而save()方法是传递文档数据替换现有文档。从3.2版本开始,MongoDB提供以下更新集合文档的方法: ...
    99+
    2020-10-28
    MongoDB(五):更新文档 删除文档
  • MongoDB文档更新(一)
        MongoDB文档更新:1.可以是采用删除原文档然后插入一个更新后的新文档到数据库中;2.基于原文档使用修改器修改原文档中的文档属性。     下面主要说明...
    99+
    2022-10-18
  • mongodb 更新update
    1.$inc用法:{$inc:{field:value}}作用:对一个数字字段的某个field增加value> db.test1.update({'name':'wang'},{$inc:{age:1...
    99+
    2022-10-18
  • mysql批量更新update
    引言:mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,这样性能很差,也很容易造成阻塞,例如几百条或几千条数据需要同时更新,一条条更新就会很慢了,下面介绍mysql 批量更新的以下四种办法 1、replace i...
    99+
    2023-08-31
    mysql 数据库
  • 如何更新 MongoDB 文档的 _id?
    您无法更新它,但可以保存新 ID 并删除旧 ID。请按照一些步骤更新 MongoDB 的 _id。步骤如下:第1步:第一步,需要将ObjectId存储到变量中。anyVariableName=db.yourCollectionName.fi...
    99+
    2023-10-22
  • Facebook 游戏开发更新文档 API 参考文档 v5.0
    Facebook 游戏开发更新文档API 参考文档 v5.0 更新日志 广告 API 两款全新的 API 可方便投放插屏广告和奖励式视频广告。要求 配置游戏以便在小游戏中投放广告。 Player St...
    99+
    2023-06-05
  • on duplicate key update 更新无效
    项目场景: 例如:项目场景:项目使用了sharding分库分表,有不存在则保存,存在则更新的操作需求,所以使用了on duplicate key update,但是无效,报错了。用的mybatis-p...
    99+
    2023-09-28
    mybatis mysql 数据库
  • sqlserver update join 多关联更新
    由于程序bug,导致之前很多数据入库后信息不全,好在有基础信息表,可以通过基础信息表更新缺失字段信息 通过 inner join语法实现多关联更新 update a set a.name = b.name from produ...
    99+
    2018-12-22
    sqlserver update join 多关联更新
  • 使用update语法更新mysql
    下面讲讲关于使用update语法更新mysql,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完使用update语法更新mysql这篇文章你一定会有所受益。update语法Sing...
    99+
    2022-10-18
  • 03.Mongodb创建、更新和删除文档。
      插入:>db.collectionName.insert({"bar":"baz")} 批量插入:如果要向集合插入多个文档,使用批量插入会快一些。batchInsert函数实现...
    99+
    2022-10-18
  • Windows update更新有用吗?有必要进行更新吗?
    不少电脑爱好者在讨论Windows update更新有用吗?对于这个问题,其实在网上很多论坛也有激烈讨论。其实我们讨论Windows update更新主要是针对其对我们电脑系统的影响以及用户体验方面。那么Windows ...
    99+
    2023-05-31
    Windows update 更新
  • MongoDB中怎么实现文档更新操作
    MongoDB中怎么实现文档更新操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。文档替换假设我的集合中现在存了如下一段数据:{  ...
    99+
    2022-10-18
  • MongoDB如何更新多级文档的数据
    目录嵌套数组更新更新下级文档的属性属性增加和移除总结嵌套数组更新 以下面的数据(数据集名称为author)为例: {name: '岛上码农', documents: ['Flu...
    99+
    2022-11-12
  • SQL 入门教程:更新(UPDATE)数据
    目录请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 更新(修改)表中的数据,可以使用 UPDATE 语句。有两种使用 UPDATE 的方式: 更新表中的特定行; 更新表中的所有行。 下面分别介绍。 注意:不要省略 ...
    99+
    2021-01-22
    SQL 入门教程:更新(UPDATE)数据
  • windows update更新的方法是什么
    要更新Windows操作系统,可以按照以下步骤进行:1. 打开开始菜单,点击"设置"图标(齿轮状图标)。2. 在设置窗口中,选择"更...
    99+
    2023-09-12
    windows
  • Postgres中UPDATE更新语句怎么用
    这篇文章主要介绍Postgres中UPDATE更新语句怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PG中UPDATE源码分析本文主要描述SQL中UPDATE语句的源码分析,代码为PG13.3版本。整体...
    99+
    2023-06-29
  • gitee怎么更新一个文档(步骤浅析)
    Gitee是一个流行的代码托管平台,也是国内首个支持Git的基于云计算的软件开发平台。它提供了许多功能,包括代码管理、文档管理、项目管理等等。在使用Gitee管理文档时,我们需要知道如何更新一个文档。下面我们将详细介绍如何在Gitee上更新...
    99+
    2023-10-22
  • MongoDB对Document(文档)的插入、删除及更新
    一.Document数据插入 1.插入文档 db.[文档名].insert({BSON数据}) 2.批量插入文档 shell当中不支持批量插入,想完成批量插入操作,可以使用shell的for循环,或者其他高级语言当中的批...
    99+
    2022-07-08
    MongoDB Document 文档插入 文档删除 文档更新
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作