Mongo数据库操作(四)

 insert or update
db.persons.update({name:3},{name:33},false/true(是否执行insert or update))
当查到的话就执行update,查不到的话执行insert
db.persons.update({name:3},{$set:{name:33}},false/true,false/true(是否批量更新))
需要与$set配合使用
$inc的使用
db.persons.update({age:27},{$inc:{age:1}})
当执行此语句的时候
查询age:27的然后操作将其增加1,只能使用int型属性
删除一个键
db.persons.update({age:28},{$unset:{age:1}})
删除键age:28
$push()
1、如果指定的键是数组增加新的值
2、如果指定的键不是数值则中断当前操作
3、如果不存在指定的键则创建数组类型的键值对
$push(books:"js")
$push(books:"jquery")
$pushall(books:"java","c","c++")
$addToSet
当数据库数组中没有要添加的值时才添加,若有,则不添加
db.persons.update({_id:5},{$addToSet:{books:"vb"}})
$pop()
从数据库中删除最后一个值,当指定为-1时删除第一个值,删除最后一个值时指定为1
db.persons.update({_id:5},{$pop:{books:1})
删除最后一个值
db.persons.update({_id:5},{$pop:{books:-1})
删除第一个值
$pull
删除指定的一个值
db.persons.update({_id:5},{$pull:books:"js"})
$pullAll
删除指定的多个值
db.persons.update({_id:5},{$pull:books:["js","java"]})
$数组定位器
例如在persons中增加数据
db.persons.insert({_id:6},books:[{type:"JS",name:"extjs4"},{type:"JS",name:"jquery"},{type:"DB",name:"nongodb"}])
在type:"JS"中追加作者
db.persons.update({"books.type":"JS"},$set:{"books.$.author":"uspcat"})
$addToSet与$each结合完成批量数组更新
db.text.update({_id:1000},{$addToSet:{books:{$each:["js","DB"]}}})
函数
只能单条修改,若有多个,修改第一个
ps=db.runCommond({
     "findAndModify":"persons",   //要修改的对象
     "query":{"name":"333"},      //在对象中查询的条件
     "update":{"$set":{"age":100}}  //修改的内容
      "new":true
})
ps.value
返回修改的记录
 

猜你喜欢

转载自blog.csdn.net/qq_32367137/article/details/79875824