iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB之数据更新(修改器)
  • 898
分享到

MongoDB之数据更新(修改器)

2024-04-02 19:04:59 898人浏览 薄情痞子
摘要

对mongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含有数组)。所以在进行MonGoDB设计的时候就提供有一系列修改器的应用。之前使用的“$set”就是一个修改器。 1、$inc:主要

mongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含有数组)。所以在进行MonGoDB设计的时候就提供有一系列修改器的应用。之前使用的“$set”就是一个修改器。

1、$inc:主要针对于一个数字字段,增加某个数字字段的数据内容:
语法:{"$inc":{"成员":"内容"}}
范例:将年龄为30岁的一个员工的薪水一律1000,年龄加1岁
> db.emp.update({"age":30},{"$inc":{"sal":-1000,"age":1}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"age":31}).pretty();
{
        "_id" : ObjectId("599108423268c8e84253be26"),
        "name" : "赵一",
        "sex" : "男",
        "age" : 31,
        "sal" : 8999,
        "loc" : "北京"
}

2、$set:进行内容的重新设置:
语法:{"$set":{"成员":"新内容"}}
范例:将年龄是30岁的某个人员的薪水修改为7999
> db.emp.update({"age":30},{"$set":{"sal":7999}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"age":30}).pretty();
{
        "_id" : ObjectId("599108423268c8e84253be29"),
        "name" : "李四",
        "sex" : "女",
        "age" : 30,
        "sal" : 7999,
        "loc" : "北京"
}

3、$unset:删除某个成员的内容:
语法:{"$unset":{"成员":1}}
范例:删除“孙三”的年龄和薪水信息
> db.emp.find({"name":"孙三"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孙三",
        "sex" : "男",
        "age" : 40,
        "sal" : 2000,
        "loc" : "深圳"
}
> db.emp.update({"name":"孙三"},{"$unset":{"age":1,"sal":1}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"孙三"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孙三",
        "sex" : "男",
        "loc" : "深圳"
}

4、$push:相当于将内容追加到指定的成员之中(基本上是数组):
语法:{"$push":{"成员":value}}
范例:向“孙三”添加2门课程信息(此时孙三信息下没有course信息)
> db.emp.update({"name":"孙三"},{"$push":{"course":["语文","数学"]}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"孙三"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孙三",
        "sex" : "男",
        "loc" : "深圳",
        "course" : [
                [
                        "语文",
                        "数学"
                ]
        ]
}

范例:向“李四”添加一门课程信息(此时李四信息下没有course信息)
> db.emp.update({"name":"李四"},{"$push":{"course":"语文"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"李四"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be29"),
        "name" : "李四",
        "sex" : "女",
        "age" : 30,
        "sal" : 7999,
        "loc" : "北京",
        "course" : [
                "语文"
        ]
}

范例:向“刘A”的课程追加一个“美术”
> db.emp.find({"name":"刘A"}).pretty()
{
        "_id" : ObjectId("599129a00184ff511bf02b87"),
        "name" : "刘A",
        "sex" : "男",
        "age" : 35,
        "sal" : 8000,
        "loc" : "北京",
        "course" : [
                "语文",
                "数学",
                "英语",
                "音乐",
                "政治"
        ]
}
> db.emp.update({"name":"刘A"},{"$push":{"course":"美术"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"刘A"}).pretty()
{
        "_id" : ObjectId("599129a00184ff511bf02b87"),
        "name" : "刘A",
        "sex" : "男",
        "age" : 35,
        "sal" : 8000,
        "loc" : "北京",
        "course" : [
                "语文",
                "数学",
                "英语",
                "音乐",
                "政治",
                "美术"
        ]
}

就是进行数组数据的添加操作使用的。如果没有数组则进行新的数组的创建,如果有则进行内容的增加。

5、$pushAll:与“$push”是类似的,可以一次追加多个内容到数组里面:
语法:{"$pushAll":{"成员":数组内容}}
范例:向"周五"里面添加多个课程内容
> db.emp.find({"name":"周五"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京"
}
> db.emp.update({"name":"周五"},{"$pushAll":{"course":["美术","音乐"]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"周五"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京",
        "course" : [
                "美术",
                "音乐"
        ]
}

6、$addToSet:向数组里面增加一个新的内容,只有这个内容不存在的时候才会增加
语法:{"$addToSet":{成员:内容}}
范例:向“周五”的信息增加新的内容
> db.emp.update({"name":"周五"},{"$addToSet":{"course":"舞蹈"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"周五"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京",
        "course" : [
                "美术",
                "音乐",
                "舞蹈"
        ]
}
此时会判断要增加的内容在数组里面是否存在,如果不存在则向数组之中追加内容,如果存在则不做任何修改操作。

7、$pop:删除数组内的数据
语法:{"$pop":{成员:内容}},内容如果设置为-1表示删除第一个,如果内容设置为1表示删除最后一个
范例:删除周五的第一个课程
> db.emp.update({"name":"周五"},{"$pop":{"course":-1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"周五"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京",
        "course" : [
                "音乐",
                "舞蹈"
        ]
}

范例:删除周五的最后一个课程
> db.emp.update({"name":"周五"},{"$pop":{"course":1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"周五"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京",
        "course" : [
                "音乐"
        ]
}

8、$pull:从数组内删除一个指定内容的数据
语法:{"$pull":{成员:数据}},进行数据比对的,如果是此数据是删除
范例:删除王五的音乐课程信息
> db.emp.update({"name":"周五"},{"$pull":{"course":"音乐"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"周五"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be2a"),
        "name" : "周五",
        "sex" : "女",
        "age" : 30,
        "sal" : 9999,
        "loc" : "北京",
        "course" : [ ]
}

9、$pullAll:一次性删除多个内容
语法:{"$pullAll":{成员:[数据,数据,...]}}
范例:删除“刘A”中的三门课程
> db.emp.find({"name":"刘A"}).pretty()
{
        "_id" : ObjectId("599129a00184ff511bf02b87"),
        "name" : "刘A",
        "sex" : "男",
        "age" : 35,
        "sal" : 8000,
        "loc" : "北京",
        "course" : [
                "语文",
                "数学",
                "英语",
                "音乐",
                "政治",
                "美术"
        ]
}
> db.emp.update({"name":"刘A"},{"$pullAll":{"course":["语文","数学","英语"]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"name":"刘A"}).pretty()
{
        "_id" : ObjectId("599129a00184ff511bf02b87"),
        "name" : "刘A",
        "sex" : "男",
        "age" : 35,
        "sal" : 8000,
        "loc" : "北京",
        "course" : [
                "音乐",
                "政治",
                "美术"
        ]
}

10、$rename:为成员名称重命名
语法:{"$rename":{旧的成员名称:新的成员名称}}
范例:将“孙三”的name成员名称修改为“姓名”
> db.emp.find({"name":"孙三"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "name" : "孙三",
        "sex" : "男",
        "loc" : "深圳",
        "course" : [
                [
                        "语文",
                        "数学"
                ]
        ]
}
> db.emp.update({"name":"孙三"},{"$rename":{"name":"姓名"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.emp.find({"姓名":"孙三"}).pretty()
{
        "_id" : ObjectId("599108423268c8e84253be28"),
        "sex" : "男",
        "loc" : "深圳",
        "course" : [
                [
                        "语文",
                        "数学"
                ]
        ],
        "姓名" : "孙三"
}

在整个MongoDB数据库里面,提供的修改器的支持很全面。
您可能感兴趣的文档:

--结束END--

本文标题: MongoDB之数据更新(修改器)

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

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

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

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

下载Word文档
猜你喜欢
  • mongodb如何更新数据
    mongodb中更新数据的方法:在mongodb中可以使用update()和save()方法来更新集合中的文档数据,update()语法例如“db.col.update( { "count" : { $gt : 1 } ...
    99+
    2024-04-02
  • MySQL数据库——MySQL UPDATE:修改数据(更新数据)
    在 MySQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表,语法格式为: UPDATE SET 字段 1=值 1 [,字段 2=值 2… ] ...
    99+
    2023-09-06
    数据库 mysql java
  • mongodb如何修改数据
    mongodb中修改数据的方法:1、使用db.collection.update()方法来修改更新集合中已存在满足条件的文档数据;2、使用db.collection.save()方法来修改替换一个已存在的文档数据。具体内容如下:使用upda...
    99+
    2024-04-02
  • mongodb怎么修改数据
    修改 mongodb 数据的过程涉及使用 update() 或 updateone() 方法。update() 方法用于更新多个文档,其语法为:db.collection.update(...
    99+
    2024-04-08
    mongodb
  • php如何把修改数据更新回数据库
    要把修改的数据更新回数据库,可以使用PHP中的UPDATE语句。首先,你需要连接到数据库。可以使用mysqli或PDO等PHP扩展来...
    99+
    2023-08-17
    php 数据库
  • mongodb如何批量更新数据
    在MongoDB中,可以使用updateMany方法来批量更新数据。该方法接受两个参数,第一个参数是查询条件,用来匹配需要更新的文档...
    99+
    2024-05-11
    mongodb
  • mongodb怎么批量更新数据
    MongoDB提供了updateMany()方法来实现批量更新数据。 updateMany()方法的语法如下: db.collect...
    99+
    2023-10-26
    mongodb
  • mongodb如何更新一条数据
    在MongoDB中,可以使用update()方法来更新一条数据。更新数据时,需要指定更新条件和更新内容。 以下是更新一条数据的基本语...
    99+
    2024-04-09
    mongodb
  • mongodb如何更新表中所有数据
    要更新MongoDB表中的所有数据,可以使用updateMany()方法来更新所有文档。以下是一个示例,它将更新名为"student...
    99+
    2023-08-24
    mongodb
  • mongodb批量更新数据怎么实现
    在 MongoDB 中,可以使用 updateMany() 方法来批量更新数据。下面是一个示例: 假设有一个名为 users 的集合...
    99+
    2024-04-09
    mongodb
  • 阿里云服务器数据修改命令:轻松实现数据更新
    简介 在使用阿里云服务器时,有时候我们需要对服务器上的数据进行修改。本文将介绍一些常用的阿里云服务器数据修改命令,帮助您轻松实现数据更新。1. 查看服务器数据在进行数据修改之前,首先需要查看服务器上的数据。可以使用以下命令来查看服务器上的文...
    99+
    2024-01-30
    数据 阿里 命令
  • mongodb中如何修改字段数据
    要修改MongoDB中的字段数据,可以使用update方法来更新文档。以下是一个简单的示例: 假设有一个名为users的集合,其中包...
    99+
    2024-04-09
    mongodb
  • Mybatis之批量更新数据
    Mybatis之批量更新数据(批量update) 前言 当我们使用mybatis的时候,可能经常会碰到一批数据的批量更新问题,因为如果一条数据一更新,那每一条数据就需要涉及到一次数据库的操作,包括网络...
    99+
    2023-09-12
    mybatis 数据库 mysql
  • mongodb怎么修改数据库名称
    要修改MongoDB中的数据库名称,可以按照以下步骤进行操作: 连接到MongoDB服务器。 切换到要修改的数据库。 运行命令`d...
    99+
    2023-10-27
    mongodb 数据库
  • mongodb批量更新数据慢怎么解决
    在 MongoDB 中进行批量更新数据时可能会遇到性能问题,以下是一些解决方法: 使用批量更新操作符:MongoDB 提供了批量...
    99+
    2024-04-09
    mongodb
  • MongoDB如何更新多级文档的数据
    目录嵌套数组更新更新下级文档的属性属性增加和移除总结嵌套数组更新 以下面的数据(数据集名称为author)为例: {name: '岛上码农', documents: ['Flu...
    99+
    2024-04-02
  • vue中修改了数据但视图无法更新怎么办
    这篇文章主要为大家展示了“vue中修改了数据但视图无法更新怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中修改了数据但视图无法更新怎么办”这篇文章吧...
    99+
    2024-04-02
  • vue修改了数据但视图无法更新怎么解决
    本文小编为大家详细介绍“vue修改了数据但视图无法更新怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue修改了数据但视图无法更新怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。v-for遍历的数...
    99+
    2023-07-04
  • mysql 有数据就修改,无数据则新增
    使用场景: 操作某个用户信息时,没有就创建该用户,有则修改该用户信息。 方法一 :replace into replace into 会根据唯一索引或主键进行判断,如果存在则覆盖写入字段,如果不存在则新增。该方法底层是先delete再in...
    99+
    2023-08-18
    mysql 数据库 sql
  • mongodb如何新增数据
    mongodb新增数据的方法有三种,其中db.collection.insert()方法添加一个新文档到集合中,而db.collection.update()方法和db.collection.save()方法则是通过upsert操作来添加新...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作