mongodb学习(一)
MongoDB 跨平台 面向文档 高性能 高可用性 易于扩展
一、名词解释:
数据库:是一个集合的物理容器,一个单一的MongoDB通常有多个数据库
集合:是一组MongoDB的文件,不强制一个集合存储一种类型的文档,但是通常情况下同一集合中的文件都是相关的
文档:文档是一组键值对。(json格式文件)
二、创建集合:
db.createCollection();
参数:
capped: boolean 启用上限集合,上限集合是一个固定大小的集合,当它达到其最大尺寸会自动覆盖最老的条目。
autoIndexID: boolean 自动创建索引 _id 字段
size: number 指定上线集合字节的最大尺寸
max:指定上线集合允许的最大文件数
三、基础增删改查
db.collection_name.save():
db.collection_name.deleteMany():
db.collection_name.update():
db.collection_name.find():
1、查询:
1)、where:
$lt 等价 <
$lte 等价 <=
$gt 等价 >
$gte 等价 >=
$ne 等价 !=
2)、and:
使用,隔开每个条件,条件之间是and的关系
3)、or:
使用 $or 关键字 语法 db.collection_name.find( { "$or" : [ { "key1" : "value1" } , { "key2" : "value2" } ] } )
4)、and 和 or 组合
5)、显示指定字段 1 不显示指定字段 0
db.collection_name.find( {query},{"key1":1,"key2":1,"key3":0} )
6)、Limite() 限制记录
db.collection_name.find().limit(number) number: 限制的数量
7)、排序 1 升序 -1 降序
db.collection_name.find( ).sort( { key:1 } )
2、更新文档
更新单一文件,且除更新字段外其他字段全部删除
db.collection_name.update({"query1":"value"},{"key":"value"})
$set 关键字:更新单一文件,但是只更新指定字段,其他字段不变
db.collection_name.update( {query} , { $set : { "key" : "value" } } )
更新多个文档,需要将 multi 参数 设置为 true
db.collection_name.update( {query} , { $set : { "key" : "value" } } ,{ multi:true } )
添加字段:
db.move.update({query},{$set:{"key":"value"}},{multi:true})
3、save() 保存数据
4、删除
remove()方法 从集合中删除文件
参数: 第一个 deletion criteria 删除条件
第二个 justOne 如何设置为 true 或者 1 则只删除一个文档
如果不传参数的话,将删除集合中的所有文件
四、字段创建索引,提高查询效率
创建索引的方法 1 按名称升序排序创建索引 -1 降序排序创建索引
可以为指定字段创建索引 也可以创建多个字段索引
db.collection_name.ensureIndex( { key : 1 } )
五、聚合查询:聚合操作处理数据记录并返回计算结果
聚合方法:aggregate()
$sum 求和
$avg 求均值
$min 求最小值
$max 求最大值
$push 向文档中添加数组
$addToSet 向文档中添加数组(值不会重复)
六、Mongodb 复制
复制是同步在多个服务器上的数据过程
恢复数据 灾难恢复 数据的高可用性 无须停机维护
七、数据转储
使用mongodump命令来进行数据库备份,将数据库的所有数据存储到转储目录
八、数据恢复
要回复备份的数据,使用mongorestore命令