mongodb操作
来源:互联网 发布:谁人知我心可免 编辑:程序博客网 时间:2024/05/30 22:56
update
一般有两种方法:替换操作如db.users.update({name:"xx"},newData,upsert,update)
,还有就是原子操作,即只更新部分数据,这里介绍原子操作;
其中的
upsert
为布尔值,表示是否在没有找到对象时直接创建一个新的对象;
udpate
为布尔值,false时只会更新第一个满足条件的对象,true会更新所有对象;
修改器
$set
用于增加新键或当键不存在时创建一个;如当数据库中有{"name":"heli", "keys":{"a1":12,"a2":23}}
想要更新keys中的a1, 代码:db.users.update({name:"heli"},{"$set":{"keys.a1":"haha"}})
。
$inc
用于为Number类型的键增加值,不能对String类型对象处理;当键不存在时,会创建一个新键,并设置为inc的值;
数组操作:$push $pop $pull
* 不存在则创建:{"$push":{comments":{name:"heli",docs:"xxxx"}}}
会往匹配的数据里的comments键对应的数组push增加一个数据,如果comments不存在,则会创建一个数组对象。
* 值已经存在数组里则不添加$ne
:
update({"authors":{"$ne":"heli"}},{$push:{"autors":"heli"}})
表示如果“authors”数组中没有“heli”值则push进去;
* $addToSet
完成了域$ne
同样的工作,但$addToSet
与$each
结合可以实现一次添加多个对象,且保证数组中没有重复的值;如:
db.users.update({"name":"xxx"},{$addToSet:{"emails":{$each:["a@gmail.com","b@gmail.com"]}}};
$pop
根据数组位置来删除对象:
{$pop:{key:-1}} // -1为数组尾,1为数组头;
$pop
根据数组元素的特殊键来删除:
如数组comments成员为{name, doc}两个属性,则可以通过name属性来删除所有满足条件的元素:
db.user.update({name:heli},{$pull:{comments:{name:"小明"}}})
数组定位
对于数组中的指定索引位置或满足一定条件的对象的修改方法,可以通过定位的方式来处理,假使数据库中已经有如下数据:
{ "_id":123, "comments":[ {"name":"小明", age:20}, {name:"小花", age: 18} ]}
- 对于指定索引的修改方式:
db.users.update({_id:123},{$inc:{"comments.0.age",5}})
该段代码是将小明的age增加5; - 不知道索引时:
通过条件查找,用$
来代表找到的对象,db.user.update({"comments.name":"小花"},{$set:{"comments.$.name":"小红"}})
,该代码将数组中的小花名字改成小红;
- [mongodb]java操作mongodb
- [mongodb]java操作mongodb
- MongoDB:MongoDB数据库操作
- mongodb操作
- mongodb 操作
- mongodb 操作
- mongodb操作
- MongoDB操作
- mongodb操作
- MongoDB操作
- mongodb操作
- Mongodb操作
- mongodb操作
- Mongodb操作
- mongodb操作
- Mongodb 操作
- MongoDB操作
- MongoDB操作
- K2流程超时跳转节点时插入审批历史数据
- 我在csdn上写的第一篇博客
- 2016暑假多校联赛 HDU5738
- LeetCode 231. Power of Two
- 2016多校&&HDU.5738
- mongodb操作
- iOS 用imageView制作GIF图片
- C#重拾基础之杂七杂八
- 郑州iOS點 - 关于tableView 和 collectionView 在ReloadData时候闪烁的问题
- linux centos yum安装LAMP环境
- C++学习笔记——string型 到 int,double,float型的相互转换:ostringsream,istringstream,stringstream
- for循环分号之间的多个语句执行次序问题
- 淘宝tprofiler使用说明
- eoiioe linux下解压命令大全