mongodb入门-12更新2

php中文网
发布: 2016-06-07 14:58:58
原创
1350人浏览过

mongodb入门-12更新2 mongodb入门-11更新1 http://www.2cto.com/database/201305/213137.html 继续介绍mongoDB中的更新. $inc 为一个字段添加加上一个值,这个方法只能对数字操作,也就是说只能给数字加上一个值,当然这个值可以是负数. [html] db.user.find()

mongodb入门-12更新2

 

mongodb入门-11更新1

http://www.2cto.com/database/201305/213137.html

 

继续介绍mongoDB中的更新.

$inc

 

为一个字段添加加上一个值,这个方法只能对数字操作,也就是说只能给数字加上一个值,当然这个值可以是负数.

 

[html] 

> db.user.find()  

{ "_id" : 2, "name" : "user2", "age" : 2 }  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 6 }  

> db.user.update({name:"user2"},{$inc:{age:10}}) -->将name为user2的年龄age加上10  

> db.user.find()  

{ "_id" : 2, "name" : "user2", "age" : 12 }  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 6 }  

> db.user.update({name:"user6"},{$inc:{age:-4}})  -->将name为user6的年龄age加上-4,也就是减去4  

> db.user.find()  

{ "_id" : 2, "name" : "user2", "age" : 12 }  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 2 }  

$set

当文档中包含该字段的时候,更新该字段,如果该文档中没有该字段,则为本文档添加一个字段.

 

[html] 

> db.user.find()  

{ "_id" : 2, "name" : "user2", "age" : 12 }  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 2 }  

> db.user.update({name:"user2"},{$set:{age:20}}) -->将name为user2的age设置为20  

> db.user.find()  

{ "_id" : 2, "name" : "user2", "age" : 20 }  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 2 }  

> db.user.update({name:"user2"},{$set:{sex:"nan"}}) -->将name为user2的sex设置为nan,但是没有该字段,所以为该文档添加sex字段并赋值为nan  

> db.user.find()  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 2 }  

{ "_id" : 2, "age" : 20, "name" : "user2", "sex" : "nan" }  

 

$unset

 

删除文档中的一个字段.

 

[html] 

> db.user.find()  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 2 }  

{ "_id" : 2, "age" : 20, "name" : "user2", "sex" : "nan" }  

> db.user.update({name:"user2"},{$unset:{sex:1}}) -->删除name为user2的sex字段.如果删除一个不存在的字段,并不会报错,没有什么效果  

> db.user.find()  

{ "_id" : 3, "name" : "user3", "age" : 3 }  

{ "_id" : 4, "name" : "user4", "age" : 4 }  

{ "_id" : 5, "name" : "user5", "age" : 5 }  

{ "_id" : 6, "name" : "user6", "age" : 2 }  

{ "_id" : 2, "age" : 20, "name" : "user2" }  

 

$push

将一个数字存入一个数组,分为三种情况,如果该字段存在,则直接将数字存入数组.如果该字段不存在,创建字段并且将数字插入该数组.如果更新的字段不是数组,会报错的.

[html] 

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4 ] }  

{ "_id" : 2, "text" : "test" }  

> db.test.update({_id:1},{$push:{ary:5}}) -->数组存在 直接存入  

> db.test.find()  

{ "_id" : 2, "text" : "test" }  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5 ] }  

> db.test.update({_id:2},{$push:{ary:6}}) -->数组不村子,创建数组并存入  

> db.test.find()  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

某个性淘客站整站打包
某个性淘客站整站打包

1、演示:以截图为准 2、安装说明: 1,运行 你的域名/install/index.php填写相关信息进行安装, 2,安装后运行 你的域名/dede进入后台--系统--数据备份/还原---点击右上数据还原---开始还原数据 3, 系统--系统基本设置--站点设置--域名改为你的域名(否则显示不正常) 这一步很重要 更新主页HTML 更新栏目HTML 更新文档HT

某个性淘客站整站打包 0
查看详情 某个性淘客站整站打包

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5 ] }  

> db.test.update({_id:2},{$push:{text:6}})  -->更新字段存在但不是数组报错  

Cannot apply $push/$pushAll modifier to non-array  

如果我们想将多个值一起压入我们可能会将一个数组直接存入,但是这样是不对的,$push一次只会存入一个字段,代码如下:

[html] 

> db.test.update({_id:1},{$push:{ary:[6,7]}})  

> db.test.find()  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ] ] }  

实现上面的功能我们可以使用下面的$pushAll

 

$pushAll

将多个数值一次存入数组.

 

[html] 

> db.test.update({_id:1},{$pushAll:{ary:[8,9]}})  

> db.test.find()  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

 

$addToSet

与$push功能相同讲一个数字存入数组,不同的是如果数组中有这个数字,将不会插入,只会插入新的数据,同样也会有三种情况,与$push相同.

 

[html] 

> db.test.find()  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

> db.test.update({_id:2},{$addToSet:{ary:7}}) -->ary中没有7,插入成功  

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

{ "_id" : 2, "ary" : [ 6, 7 ], "text" : "test" }  

> db.test.update({_id:2},{$addToSet:{ary:7}})  -->ary中有7,插入失败   

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

{ "_id" : 2, "ary" : [ 6, 7 ], "text" : "test" }  

其他的两种情况自己去测试.

 

$pop

 

删除数组最后一个元素

 

[html] 

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

{ "_id" : 2, "ary" : [ 6, 7 ], "text" : "test" }  

> db.test.update({_id:2},{$pop:{ary:1}})  

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

 

$pull

删除数组中的一个元素,如果删除的字段不是数组,会报错

 

[html] 

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 8, 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

> db.test.update({_id:1},{$pull:{ary:8}})  

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

 

$pullAll

删除数组中的多个值,跟pushAll与push的关系类似.

 

[html] 

> db.test.find()  

{ "_id" : 1, "ary" : [ 1, 2, 3, 4, 5, [ 6, 7 ], 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

> db.test.update({_id:1},{$pullAll:{ary:[1,2,8]}})  

> db.test.find()  

{ "_id" : 1, "ary" : [ 3, 4, 5, [ 6, 7 ], 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

 

$rename

为字段改名

 

[html] 

> db.test.find()  

{ "_id" : 1, "ary" : [ 3, 4, 5, [ 6, 7 ], 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

> db.test.update({_id:1},{$rename:{ary:"aryNew"}})  

> db.test.find()  

{ "_id" : 1, "aryNew" : [ 3, 4, 5, [ 6, 7 ], 9 ] }  

{ "_id" : 2, "ary" : [ 6 ], "text" : "test" }  

 

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号