数据分页显示
在MongoDB里面的数据分页显示也是符合与大数据要求的操作函数:
skip(n):表示跨国多少数据行
limit(n):取出的数据行的个数限制
//分页显示(第一页)
db.students.find().skip(0).limit(5).sort({"age",-1})/pretty();
//分页显示(第二页)
db.students.find().skip(5).limit(5).sort({"age",-1})/pretty();
数据更新操作
对于MonggoDB而言,数据的更新基本上是一种很麻烦的事,
函数的基本使用:
如果要修改数据,最直接的使用函数就是update():
db.集合.update(更新条件,新的数据对象(新的操作符),upsert,multi)
upsert:如果要更新的对象不存在,就增加一条数据。True为增加,false为不增加。
multi:如果为true,全部更新,false,只更新第一条
//将年龄为19岁的人成绩更新100,只更新一个
db.students.update({"age":19},{"$set":{"score":100}},false,false)
//将年龄为19岁的人成绩更新100 ,全部更新
db.students.update({"age":19},{"$set":{"score":100}},false,true)
//更新不存在的数据,没有就会添加
db.students.update({"age":30},{"$set":{"name":"不存在"}},true,false)
save类似于update中upsert为true,如果不存在,就添加。
db.集合.save(更新条件,新的数据对象(新的操作符))
修改器
对MonggoDB数据库而言,数据的修改会牵扯到内容变更,结构变更,所以它提供了有一些列的修改器应用
1) $inc: 主要针对于数据的增加减小
//将19岁的减30分
db.students.update({"age":19},{"$inc":{"score":-30}})
2)$set:进行内容的重新设置:
//将19岁的设置为80分
db.students.update({"age":19},{"$set":{"score":80}})
3)$push:将内容追加到指定的成员之中(基本上是数组):
如果有数组,进行追加,如果没有,则创建一个新数组
db.students.update({"name":"张三"},{"$push":{"course":"语文"}})
4)$pushAll:将多个内容追加到指定的成员之中(基本上是数组):
db.students.update({"name":"张三"},{"$pushAll":{"course":["语文","美术"]}})
5)$addToSet:向数组里增加新的内容,如果已存在,则不增加:
db.students.update({"name":"张三"},{"$addToSet":{"course":"语文"}})
db.students.update({"name":"张三"},{"$addToSet":{"course":"语文"}})
- $pop:删除成员内的数据(也是对数组进行操作)(-1为第一个,1为最后一个):
db.students.update({"name":"张三"},{"$pop":{"course":-1}})
db.students.update({"name":"张三"},{"$pop":{"course":1}})
7): $pull:删除成员内的指定数据:
db.students.update({"name":"张三"},{"$pull":{"course":"音乐"}})
8):$pullAll:删除成员内的多个指定数据:
db.students.update({"name":"张三"},{"$pull":{"course":["音乐","语文"]}})
9):$rename:为成员名称重命名
db.students.update({"name":"张三"},{"$rename":{"name":"姓名"}}
10):$unset:删除某个成员的内容
db.students.update({"name":"张三"},{"$unset":{"name":1,"age":1}}
删除数据
在mongDB中使用Remove进行删除。函数中有两个可选项:
1)删除条件:满足条件的数据被删除;
2)是否只删除一个数据,如果设置为true或者是1表示值删除一个
//清空infos集合中的内容,在2.X中可用
db.infos.remove()
//清空带有古字的
db.infos.remove({”name“,/古/})
//清空带有古字的,只删除第一个
db.infos.remove({”name“,/古/},true)
关系查询
也就是平时的大于,大于,小于
//查询性别是男的
db.students.find("sex":"男")。pretty()
//查询年龄大于19岁的学生
db.students.find("age":{"$gt":19}).pretty()
//查询年龄大于等于19岁的学生
db.students.find("age":{"$gte":19}).pretty()
//查询年龄不等于19岁的学生
db.students.find("age":{"$ne":19}).pretty()
逻辑运算
逻辑运算就三种:与( a n d ) , 或 ( and),或( and),或(or),非($ne)
//“与”用逗号链接就可以
db.students.find({"age":{"$gte":19,"$lte":20}}).pretty()
//“非”用(“$ne”)
db.students.find({"age":{"$ne":19}}).pretty()
//"或"(“or”)
db.students.find({"$or":[{"age":{"$gte":19,"$lte":20}},{"score":{"$gt":60}}]}).pretty()
取模运算
第一个数是除数,第二个是余数
db.students.find({"age":{"$mod":[20,0]}})
范围运算
主要是数据库,必须存在“$in”(在范围之中),“$nin”(不在范围之中)
db.students.find({"name":{"$in":["张三","李四"]}})
db.students.find({"name":{"$nin":["张三","李四"]}})