数据库操作
- show dbs
- use admin
- db.dopDatebase()
集合创建
- db.createCollection('sut')
- db.createCollection('sub',{capped:tue,size:10})
capped:默认为False,表示不设置上限,为true是表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位i为字节。 - show collections
- db.stu.drop()
数据操作
- db.stu.insert({name:'wangwang',age:19})
- db.stu.update({name:'wangwang',{name:'wangshuaishuai'})
- 指定属性更新:
- db.stu.update({name:'wangwang',{$set:{age:18}})
- db.stu.update({name:'wangwang',{$set:{age:18}},{multi:true}) -->修改多条匹配到的数据
- 删除:
- db.stu.remove({gender:0},{justOne:true})-->justOne可选,如果为True则只删除一条,默认false删除多条
- 全部删除:
- db.stu.remove({})
数据查询
基本查询
- 方法find():查询
db.集合名称.find({条件文档}) - 方法findOne():查询,只返回第一个
db.集合名称.findOne({条件文档}) - 方法pretty():将结果格式化
- db.集合名称.find({条件文档}).pretty()
比较运算符
- 等于,默认是等于判断没有运算符
- 小于$lt
- 小于或等于$lte
- 大于$gt
- 大于或等于$gte
- 不等于$ne
- 例1:查询名称等于'gj'的学生
db.stu.find({name:'gj'}) - 例2:查询年龄大于或等于18的学生
db.stu.find({age:{$gte:18}})
逻辑运算符
- 查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接
- 逻辑与:默认是逻辑与的关系
- 例3:查询年龄大于或等于18,并且性别为1的学生
db.stu.find({age:{$gte:18},gender:1}) - 逻辑或:使用$or
- 例4:查询年龄大于18,或性别为0的学生
db.stu.find({gt:18}},{gender:1}]})
- and和or一起使用
- 例5:查询年龄大于18或性别为0的学生,并且学生的姓名为gj
db.stu.find({gte:18}},{gender:1}],name:'gj'})
范围运算符
- 使用
nin判断是否在某个范围内
- 例6:查询年龄为18、28的学生
db.stu.find({age:{$in:[18,28]}}) - 支持正则表达式
使用//或$regex编写正则表达式 - 例7:查询姓黄的学生
db.stu.find({name:/^黄/})
db.stu.find({name:{$regex:'^黄'}}}) - 自定义查询
- 使用$where后面写一个函数,返回满足条件的数据
- 例7:查询年龄大于30的学生
db.stu.find({$where:function(){return this.age>20}})
limt 读取限制数量的数据
db.collection.find().limit(num):
skip 跳过指定数量的文档
db.collection.find().skip(num)
- 一起使用
查询第五到第八条数据:
db.stu.find.skip(5).limit(4):不分先后顺序
投影 显示需要的字段
对于需要显示的字段,设置为1即可。
db.stu.find({},{name:1,gender:1,_id:0})
排序 sort
1:升序
-1:降序
db.stu.find().sort({gender:-1,age:1})
统计 count
db.stu..find({条件}).count()
db.stu.count({条件})
db.stu.count({age:{$gt:20},gender:1})
去重 distinct
db.集合名称.distinct('去重字段',{条件})
db.stu.distinct('gender',{age:{$gt:18}})