修改器
1.$set 设置某一个字段的值。
db.collections.update({查找的数据},{$set:{要修改的数据}})
例子:db.test.update({name:"zzz"},{$set:{sex:1,age:10}})
2.$unset 删除字段。
db.collections.update({查找的数据},{$unset:{要删除的数据}})
例子:db.test.update({name:"zzz"},{$unset:{age:''}})
3.$inc 对一个数字字段的某一个field增加value
db.collections.update({查找的数据},{$inc:{age:val}})
val 为正数相加 为负数的时候相减
4.multi 所有数据
db.collections.update({},{inter:[]},{multi:true/false})
4.upsert 集合中添加数据
db.collections.update({name:'zhangzz'},{$set:{age:100}},{upsert:true/false})
5.$push 数组修饰符(追加数组或者操作内嵌文档)
db.collections.update({name:'primise'},{$push:{loves:'sleep'}})
db.collections.update({name:'primise'},{$push:{skill.four:'php'}})
6.$ne 修改之前先查找 有则修改没有则添加
db.collections.update({name:'primise',"interest":{$ne:'shit'}},{$push:{interset:'shiting'}})
升级版 $addToSet
db.collections.update({name:'primise'},{$addToSet:{interset:'shiting'}}},)
7.$each 批量追加(循环追加)
var newInterset = ['sleep','Code','Dance']
db.collections.update({name:'primise'},{$addToSet:{interset:{$each:newInterset}}})
8.$pop 两个值 1 从末端进行删除 -1从开始位置就行删除
db.collections.update({name:'primise'},{$pop:{interset:1}})
9.数组定位
db.collections.update({name:'primise'},{$set:{"interset.2":"Code"}})
10.findAndModify(应答式操作)
db.workmate.update({sex:1},{$set:{money:4000}},false,true) 第一个是upsert 没有不添加 第二个是 全部修改
var msg = db.runCommand({getLastError:1})
print(msg)
10.findAndModify 查找并修改
findAndModify:'workmate',
query:{name:'primise'},
update:{$set:{age:0}},
new:true //更新完成 需要查看结果,如果为false不进行查看结果。
}
var ResultMsg = db.runCommand(myModify);
printjson(ResultMsg)
findAndModify属性值:{
query:需要查询的条件/文档
sort: 进行排序
remove:[boolean]是否删除查找到的文档,值填写true,可以删除。
new:[boolean]返回更新前的文档还是更新后的文档。
fields:需要返回的字段
upsert:没有这个值是否增加。
}
不等修饰符
1.小于(lte)3.大于(gte)5.不等于($ne)
例子:查找大于等于15小于等于30岁的人
db.collections.find({age:{$gte:15,$lte:30}},{name:true,age:true})
$in修饰符(一个key值多个value)
例子:db.workmate.find({age:{$in:[20,33]}},{name:true,"id":false,age:true})
$nin修饰符(不包含值 非的意思)
例子:db.workmate.find({age:{$nin:[20,33]}},{name:true,"id":false,age:true})
$or修饰符 (条件成立一个即可 “或”)
例子:db.collections.find({$or:[{age:{$gte:35}},{'skill.skillOne':"php"}]},{
name:true,"skill.skillOne":true
})
$and修饰符(条件都成立 "且")
例子:db.collections.find({$and:[{age:{$gte:35}},{'skill.skillOne':"php"}]},{
name:true,"skill.skillOne":true
})
基本数组查询
例子.db.collection.find({interest:['睡觉','打游戏']},{name:1,age:1,"_id":0}) $all-数组多项查询
例子.db.collection.find({interest:{$all:['看电影','看书']}},{name:1,age:1,interest:1,_id:0})
$size-数组个数查询
例子.db.collection.find({interest:{$size:3}},{name:1,age:1,interest:1,_id:0})
$slice-显示选项
例子.db.collection.find({},{name:1,age:1,interest:{$slice:2},_id:0})
find参数查寻
query:这个就是查询条件,MongoDB默认的第一个参数。
fields:(返回内容)查询出来后显示的结果样式,可以用true和false控制是否显示。
limit:返回的数量,后边跟数字,控制每次查询返回的结果数量。
skip:跳过多少个显示,和limit结合可以实现分页。
sort:排序方式,从小到大排序使用1,从大到小排序使用-1。
例子:db.collections.find({},{name:1,age:1_id:0}).limit(0).skip(2).sort({age:1})
$where 修饰符 js条件查询this指向的是查寻集合本身
{$where:'this.age>20'},
{name:true,age:true,_id:false}
).limit(0).skip(3).sort({age:1})```
### 索引查寻
数据超过万条;
数字索引;
对象型数据;
1.简单索引
db.collections.getIndexes();//查询索引
db.collections.ensureIndex({userName:1})//建立缓存
2.复合索引
```db.collections.ensureIndex({userName:1,nameIndex:1}).hint({nameIndex:1})```
3.全文索引 查询关键字
```db.collection.find({$text:{$search:"skill name sex"}}) 或的关系 -sleep 减号不希望有这个单词的存在```
### 数据库备份、还原
```mongodump
--host 127.0.0.1
--port 27017
--out D:/databack/backup
--collection myCollections
--db test
--username username
--password password
mongorestore
--host 127.0.0.1
--port 27017
--username username
--password password
<path to the backup>
mongorestore --host 127.0.0.1 --port 27017 D:/databack/backup
也可以直接打开命令行 mongodb 目录下cd到bin 输入mongodump 备份 mongorestore还原版本
图形数据库
基本上使用Remongo
直接运行mongod 打开图形工具
最后就可以在图形工具愉快的增删查改了!