MongoDB
MongoDB简介
1、MongoDB 是一种强大、灵活、可扩展的开源数据库。由 C++ 语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
2、是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它扩展了关系型数据库的众多功能,如辅助索引、范围查询和排序。
3、面向文档存储,易于存储对象类型的数据,是开源软件、无表结构,也就是说MongoDB免费软件、没有固定的表结构,模式自由。
文档数据模型
1、特点
(1)文档存储没有强制的架构,无须事先定义数据存储结构
(2)文档存储以键值对的方式存储
(3)MongoDB存储的数据类型为BSON(Binary JSON的简称)
2、文档存储层次
SQL | MongoDB | 说明 |
---|---|---|
database | database | 数据库 |
table | collection | 表/集合 |
row | document | 行/文档 |
column | field | 字段/域 |
table joins | MongoDB不支持 | |
primary key | primary key | MongoDB自动将_id设置为主键 |
MongoDB基本操作
1、数据库操作
(1)查看数据库
>show dbs
admin 0.000GB //保留数据库,
Local 0.000GB //保留数据库,
test 0.000GB //保留数据库,
myDB 0.000GB //自定义数据库,
注意:如果自定义数据库没有插入记录,show dbs不会显示此数据库
(2)创建/切换数据库
> use myDB
switched to db myDB
注意:如果数据库不存在,则创建数据库,否则切换到指定数据库
(3)统计数据库信息
> db.stats() //统计数据信息
{
"db" : "test", //数据库名
"collections" : 0, //集合数量
"objects" : 0, //文档数量
"avgObjSize" : 0, //平均每个文档的大小
"dataSize" : 0, //数据占用空间大小,不包括索引,单位为字节
"storageSize" : 0, //分配的存储空间
….
}
(4)删除当前数据库
> db.dropDatabase()
{ "ok" : 1 }
> show dbs
admin 0.000GB
local 0.000GB
默认删除test数据库
2、集合操作
(1)创建集合
显示创建
> db.createCollection("myCollection")
{ "ok" : 1 }
隐示创建
> db.myCollection.insert({"name":"liming"})
WriteResult({ "nInserted" : 1 })
定长集合
>db.createCollection(“myCollection”,{capped:true,size:6142800,max:10000})
//capped:是否定长,true为定长
//size:指定集合大小允许的最大值(单位是字节)
//Max: 指定集合中允许的最多文档数量
>db.myCollection.isCapped() //判断集合是否定长
true
(2)查询集合
> show collections
myCollection
> db.myCollection.renameCollection("myColl")
{ "ok" : 1 } //集合重命名
(3)删除集合
> db.myColl.drop()
true
3、文档操作
(1)插入文档
>db.myCollection.insert({"name":"lili"})//没有指定_id,系统会自动生成。
>db.myCollection.find()
(2)删除文档
>db.mydb.remove({})
>de.mydb.deleteMany({})//{}代表删除全部文档
>db.mydb.remove({"name":"lili"})//删除部分文档