资讯专栏INFORMATION COLUMN

MongoDB ( 二 )Update修改器

hufeng / 2962人阅读

摘要:从数组末端进行删除从数组开端进行删除删除从末端删除最后一个元素删除从开始删除第一个元素数组定位修改将小王的兴趣的第二项修改为

初识update修改器

$set修改器

db.workmate.update({"name": "MinJie"}, {$set: {sex: 2, age: 21} });
// 修改嵌套内容
db.workmate.update({"name": "MinJie"}, {$set: {skill.skillThree: "word"} })

$unset用于删除

db.workmate.update({"name":"MinJie"}, {$unset: {"age": ""}})
// 这样就成功的把age这个字段删除了

如果想要再次添加可以使用$set进行添加,只是添加的内容到了整个文档的最后面了。

$inc对数字进行计算

// 它是对value值的修改,但是修改的必须是数字,字符串是不起效果的。

db.workmate.update({"name": "MenJie"}, {$inc: {age: -2}})

// 年龄减去2

multi选项

// 为每个文档都添加一个属性
db.workmate.update({}, {$set: {interset: [] 
 }})
// 如果你这样写了,只会在第一个文档上添加该条信息

// 因此这就用到了multi选项了
db.workmate.update({}, {$set: {interset: [] 
 }, { multi: true} })
// 这时候每个数据都发生了改变,multi是有ture和false两个值,true代表全部修改,false代表只修改一个(默认值)

upsert选项

// upsert是在找不到值的情况下直接插入该条数据

db.workmate.update({name:"xiaoWang"},{$set:{age:20}},{upsert:true})
// upsert也有两个值:true代表没有就添加,false代表没有不添加(默认值)。
update数组修改器

$push数组追加器

db.workmate.update({"name": "xiaowang"}, {$push: {interest: "draw"}} )
// 要给小王加上一个爱好(interset)为画画(draw):

$ne查找是否存在

// 检查一个值是否存在,如果不存在再执行操作,存在就不执行
db.workmate.update({name:"xiaoWang","interest":{$ne:"playGame"}},{$push:{interest:"Game"}})

// 如果小王的兴趣里面没有playgame, 我们就push一个game,如果有则不修改

// 总结:没有则修改,有则不修改。

addToSet升级版的$ne

// 我们现在要查看小王(xiaoWang)兴趣(interest)中有没有阅读(readBook)这项,没有则加入读书(readBook)的兴趣.
db.workmate.update({name:"xiaoWang"},{$addToSet:{interest:"readBook"}})

// 查找是否存在,不存在就push上去)

$each批量追加

var newInterset=["Sing","Dance","Code"];
// 如果我们想给小王的兴趣中批量插入数据
db.workmate.update({"name": "xiaowang"}, {interest: {$each: {newInterest}}}) // 正常时这么写的,但是如果有重复的呢,那我们就得再借助于$addset了

db.workmate.update({"name": "xiaowang"}, {$addToSet: {interest: {$each: newInterest } } }  )

$pop 删除数组值

$pop只删除一次,并不是删除所有数组中的值。而且它有两个选项,一个是1和-1。
1:从数组末端进行删除
-1:从数组开端进行删除

// 删除 
db.workmate.update({name:"xiaoWang"},{$pop:{interest:1}})
// 从末端删除最后一个元素
// 删除 
db.workmate.update({name:"xiaoWang"},{$pop:{interest:-1}})
// 从开始删除第一个元素

数组定位修改

// 
db.workmate.update({"name":"xiaowang"}, {$set: {"interest.2" : "code"}})
// 将小王的兴趣的第二项修改为code

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19218.html

相关文章

  • MongoDB学习记录:入门()| 增删改查

    摘要:上一篇提到为我们提供的客户端管理工具是,可以用它操作数据库,进行增删改查。对比删除集合中的所有文档保留集合删除集合数据更新方法用于更新已存在的文档参数说明的查询条件,类似查询内后面的。可选,抛出异常的级别。 上一篇提到:mongodb 为我们提供的客户端管理工具是mongo,可以用它操作数据库,进行增删改查(CRUD)。现在我们如上一章那样,启动mongod,再启动mongo 不记得的...

    sutaking 评论0 收藏0
  • MongoDB学习笔记(2)- Mongo Shell 中文档的增、删、改

    摘要:学习笔记中文档的增删改本文所使用的版本为一插入文档插入一个文档语法向数据库中的集合中插入一个文档注字段是系统自动生成的,也可以自己指定任何类型的字,但值不能重复。可以通过在执行完每条命令之后执行来检查是否成功 MongoDB学习笔记(2)- Mongo Shell 中文档的增、删、改 本文所使用的MongoDB版本为 4.0.10 > db.version(); 4.0.10 一、插入...

    dunizb 评论0 收藏0
  • MongoDB数据库

    摘要:是一个非关系型数据库存储形式为键值对水平扩展很容易常作为缓存数据库来使用的存储文档称之为类似对象字段值可以包含其他的文档数组以及文档数组和的概念解析概念的概念解释说明数据库表集合行文档列域表关联主键手动添加自动创建一进入数据库的目录输入启动 Mongodb 是一个非关系型数据库 存储形式为键值对 水平扩展很容易 常作为缓存数据库来使用 Mongodb的存储文档称之为 BSON...

    qylost 评论0 收藏0
  • MongoDB()CRUD 指令简单汇总

    摘要:前言本教程适合有一定数据库开发经验的人员阅读。可选,默认是只更新找到的第一条记录,如果这个参数为就把按条件查出来多条记录全部更新。向指定集合更新单个文档向指定集合更新多个文档例子教程文档数据。可选,抛出异常的级别。 前言 本教程适合有一定数据库开发经验的人员阅读。对于刚开始接触数据库的童鞋,建议直接跳到本文的References中去选择更适合的教程。还有一点需要注意的是,mongodb...

    android_c 评论0 收藏0
  • Python操作mongodb

    摘要:操作一导入二连接服务器端口号连接连接我们需要使用库里面的,一般来说传入的及端口即可,第一个参数为地址,第二个参数为端口,端口如果不传默认是。 Python操作Mongodb 一 导入 pymongo from pymongo import MongoClient 二 连接服务器 端口号 27017 连接MongoDB 连接MongoDB我们需要使用PyMongo库里面的Mongo...

    rickchen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<