Mongodb总结

来源:互联网 发布:升降电脑桌知乎 编辑:程序博客网 时间:2024/06/06 03:53

Mongodb是一种由c++语言编写,一个基于分布式文件存储的开源数据库系统
展示数据库:show dbs
展示文档:show table
展示集合:show collections
使用数据库:use 数据库名
删除数据库:db.dropDatebase()
创建集合:db.createCollection(集合名)
限制集合大小,后面学会插入语句后可以查看效果
参数capped:默认值为false表示不设置上限,值为true表示设置上限
参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
db.createCollection(“sub”, { capped : true, size : 10 } )
展示集合:show collections
删除集合:db.集合名.drop()

数据类型
下表为MongoDB中常用的几种数据类型:
Object ID:文档ID
String:字符串,最常用,必须是有效的UTF-8
Boolean:存储一个布尔值,true或false
Integer:整数可以是32位或64位,这取决于服务器
Double:存储浮点值
Arrays:数组或列表,多个值存储到一个键
Object:用于嵌入式的文档,即一个值为一个文档
Null:存储Null值
Timestamp:时间戳
Date:存储当前日期或时间的UNIX时间格式
object id
每个文档都有一个属性,为_id,保证每个文档的唯一性
可以自己去设置_id插入文档
如果没有提供,那么MongoDB为每个文档提供了一个独特的_id,类型为objectID
objectID是一个12字节的十六进制数
前4个字节为当前时间戳
接下来3个字节的机器ID
接下来的2个字节中MongoDB的服务进程id
最后3个字节是简单的增量值
集合插入:db.集合名.insert(document)
  Db.stu.insert({name:’tom’,age:12})
简单查询:db.集合名.find()
更新数据:db.集合名.update({查询条件},{更新的值},{multic=true})[参数multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新]
数据保存:db.集合名.save(document)
db.stu.save({_id:’20160102’,’name’:’yk’,gender:1})
数据删除:db,集合名.remove({条件},{justOne:true}[参数justOne:可选,如果设为true或1,则只删除一条,默认false,表示删除多条]
findOne()查询:db.集合名.findOne({条件文档})
方法pretty():将结果格式化
db.集合名称.find({条件文档}).pretty()
比较运算符:
等于,默认是等于判断,没有运算符
小于ltlte
大于gtgte
不等于$ne

db.stu.find({age:{$gte:18}})逻辑运算符(默认是逻辑与):db.stu.find({age:{$gte:18},gender:1})db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})

范围运算符:
使用”in""nin” 判断是否在某个范围内

db.stu.find({age:{$in:[18,28]}})

支持正则表达式:
使用//或$regex编写正则表达式

例:查询姓黄的学生    db.stu.find({name:/^黄/})       db.stu.find({name:{$regex:'^黄'}}})

自定义查询
使用$where后面写一个函数,返回满足条件的数据
例7:查询年龄大于30的学生

db.stu.find({$where:function(){return this.age>20}})

投影:
在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段
如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可
语法:
参数为字段与值,值为1表示显示,值为0不显示
db.集合名称.find({},{字段名称:1,…})
对于需要显示的字段,设置为1即可,不设置即为不显示
特殊:对于_id列默认是显示的,如果不显示需要明确设置为0

例1:  db.stu.find({},{name:1,gender:1})例2:  db.stu.find({},{_id:0,name:1,gender:1})

排序
方法sort(),用于对结果集进行排序
语法: db.集合名称.find().sort({字段:1,…})
参数1为升序排列
参数-1为降序排列
例1:根据性别降序,再根据年龄升序
  db.stu.find().sort({gender:-1,age:1})
统计个数
方法count()用于统计结果集中文档条数
语法: db.集合名称.find({条件}).count()

消除重复
方法distinct()对数据进行去重
语法: db.集合名称.distinct(‘去重字段’,{条件})

1:查找年龄大于18的性别(去重)   db.stu.distinct('gender',{age:{$gt:18}})
原创粉丝点击