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命令

 

posted @ 2017-10-26 16:09  孙宝路  阅读(142)  评论(0编辑  收藏  举报