? ? ? ?MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行。
? ? ? ?一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSON(binary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。
?
? ? ? ?简单介绍一下MongoDB的shell命令:
? ? ? ?
(一)数据库操作基本命令
?
1、show dbs
显示当前数据库服务器上的数据库
2、use pagedb
?切换到指定数据库pagedb的上下文,可以在此上下文中管理pagedb数据库以及其中的集合等
3、show collections
显示数据库中所有的集合(collection)
4、db.serverStatus() ?
查看数据库服务器的状态。
5、查询指定数据库统计信息
use fragment
?
db.stats()
6、查询指定数据库包含的集合名称列表
db.getCollectionNames()
7、创建数据库
在MongoDB中,可以直接通过use dbname来切换到这个数据库上下文下面,系统会自动延迟创建该数据库,例如:
?
> show dbs local (empty) pa_test 0.078125GB mgt 0.078125GB > use test switched to db test > db.user.save({'id':'999','name':'kk'}) > show dbs local (empty) pa_test 0.078125GB test 0.078125GB mgt 0.078125GB >?先指定要创建的数据库,并且向指定其中的一个集合并插入数据后,这样数据库和集合都被创建了。
?