MongoDB数据库

一、MongoDB简介

C++语言编写,基于分布式文件存储,开源数据库;

在高负载情况下,保证服务器性能

为web应用提供可扩展的高性能数据存储解决方案

存储为一个文档,键值key=>value,文档类似于json

MongoDB术语

1、数据库

database

2、集合

collection

3、文档

document

4、域

field

5、索引

index

6、主键

primary key

三、数据库、集合的相关操作

(数据库的相关操作)

1、查看当前数据库名称

db

2、列出所有的数据库

show dbs

3、切换数据库

use 数据库名称

4、查看当前数据库信息

db.stats()

5、删除数据库

db.dropDatabase()

(集合的相关操作)

1、创建集合:

db.createCollection(name,options)
其中:name 表示集合名称
           options 表示文档

不限制集合大小:db.createCollection('stu') stu为集合名称

限制集合大小:db.createCollection({capped:truesize:10 }) 其中:capped设置为true时,表示有上限,为false时,不设置上限;size表示只有当capped为true时需要设置此参数

创建固定集合,且文档最大个数为100
db.createCollection("sub",{capped:true,size:10,max:100})

2、查看数据库集合

show collections

3、删除集合

db.集合名称.drop()

四、数据库的增删改查操作

插入数据


1.PNG

更新数据


2.PNG
3.PNG

格式化数据:

db.集合名称.find().pretty()

查询数据

查询所有:

db.集合名称.find()
db.集合名称.find(
         {'key':'value'} 条件
)

查询一条:

db.集合名称.findOne({'key':'value'} 条件)

五、比较运算符

等于
小于:$lt
小于等于:$lte
大于:$gt
大于等于:$gte

举例:
单条查询
db.集合名称.find(
{
'times':{gte:100},
'actors':'李连杰',
}
)

六、逻辑运算符

逻辑或:


4.PNG

或和并且一起使用:


5.PNG

范围运算符


6.PNG

七、使用正则查询数据

7.PNG

八、$type:只返回符合数据类型的文档

db.集合名称.find(
{
'key':{$type:'指定数据类型'}
}
)

九、限制返回:limit

跳过指定的条数:skip

db.集合名称.find().limit(m).skip(n) 表示查询跳过n条后查询m条数据

注意:limit和skip先后顺序不影响结果

十、$sort:进行排序:

1:表示升序

db.集合名称.find( ).sort({'key':1})

-1:表示降序

db.集合名称.find( ).sort({'key':-1})

十一、distinct去重:

db.集合名称.distinct(
'去重字段',
{'条件'}
)

十二、project(投影):

可以选择查询结果中,数据展示和隐藏

0表示隐藏
1表示显示

db.集合名称.find(
{'条件'},
{‘key’:1}
) 假如要设置要显示的字段时,第一个字段设置为1,表示只展示一个数据,其他的数据都不会显示;
反之,只隐藏当前设置的字段,其他的字段都会显示出来

十三、count 统计个数

(1)db.集合名称.count() count()可以跟在集合名称的后面
db.集合名称.count(
{actors:'李连杰'}
)

(2)db.集合名称.find().count() 也可以跟在find()的后面

db.集合名称.find(
{actors:'李连杰'}
).count()

MongoDB聚合

MongoDB中聚合的方法使用aggregate() 语法

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

聚合框架的操作

$group:

将集合中的文档分组,可用于统计结果。

$project:

修改输入文档的结构。可以用来重命名、增加或
删除域,也可以用于创建计算结果以及嵌套文档。

$match:

用于过滤数据,只输出符合条件的文档。$match使
用MongoDB的标准查询操作。

$limit:

用来限制MongoDB聚合管道返回的文档数。

$skip:

在聚合管道中跳过指定数量的文档,并返回余下的文
档。

$unwind:

将文档中的某一个数组类型字段拆分成多条,每条
包含数组中的一个值。

$sort:

将输入文档排序后输出。

聚合的表达式

$sum

计算总和
$avg
计算平均值
$min
获取集合中所有文档对应值得最小值

$max

获取集合中所有文档对应值得最大值

$push

在结果文档中插入值到一个数组中

$first

根据资源文档的排序获取第一个文档数据

$last

根据资源文档的排序获取最后一个文档数据

$group

将集合中的文档分组,可用于统计结果

MongoDB的备份和恢复

MongoDB 备份(mongodump)

mongodump -h dbhost -d dbname -o dbdirectory

-h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d: 需要备份的数据库实例,例如:test
-o: 备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

恢复备份

mongorestore -h hostname:port -d dbname --dir path

MongoDB数据导入与导出

导出工具:mongoexport

mongoexport -d dbname -c collectionname -o file --type json/csv -f field

d :数据库名
c :collection名
o :输出的文件名
-type : 输出的格式,默认为json
f :输出的字段,如果-type为csv,则需要加上-f "字段名"

数据导入:mongoimport

mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv

d:数据库名
c:collection名
-type:导入的格式默认json
f:导入的字段名
-headerline:如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
-file:要导入的文件

你可能感兴趣的:(MongoDB数据库)