MongoDB中包含了数据库(database),集合(collection),文档(document) 这几个基本概念,下面我们对这几个概念进行介绍。
数据库(database)
MongoDB中可以创建多个数据库。
显示MongoDB下所有的数据库可以使用以下命令:
show dbs;
执行这条命令的前提是需要进行登录;可以使用一下命令:
use admin;
db.auth('账号','密码');
首先是切换到admin数据库,登录之后才能获取到所有的数据库。
查看所有的数据库结果如下:
admin 0.000GB
config 0.000GB
local 0.000GB
上面展示的三个数据库是我们安装完Mongo数据库之后就自动创建的;下面我们对这三个数据库进行解释:
admin: 此数据库用于管理用户及权限信息。
config: 此数据库在内部使用,当进行分片时,会保存分片的相关信息。
local: 此数据库用于保存本地单台服务器的数据,不能被复制。
另外需要说明的是,切换数据库可以使用下面的命令:
use 数据库;
集合(collection)
集合类似于关系型数据库中的表的概念,集合存在于数据库中,用于存储文档;与关系型数据库中的表不同,集合是没有固定的结构的,所以集合中可以插入不同格式和类型的数据。
如果查看数据库中都有哪些集合存在,可以使用以下命令:
show collections;
执行此命令,需要切换到目标数据库,然后登录之后才能执行。
我们以查看admin数据库下包含哪些集合为例,执行以下命令进行查看:
use admin;
db.auth('用户名','密码');
show collections;
执行命令后,执行的结果如下:
system.users
system.version
由此说明admin数据库下包含了两个集合system.users和system.version
文档(document)
文档相当于关系型数据库中的行数据,是由一组键值对组成的BSON对象;文档中的字段没有任何的约束,相同字段的类型也可以不一致,与关系型数据库有所不同。
例如:
{"number": 10}
{"number": "100"}
虽然number对应的值类型不一致,但是仍然可以存储在同一个集合中。
查询集合中文档的方式:
db.集合名称.find({});
下面我们以查询MongoDB的版本为例进行查询:
db.system.version.find({});
运行的结果如下:
{ "_id" : "featureCompatibilityVersion", "version" : "4.4" }
{ "_id" : "authSchema", "currentVersion" : 5 }
总结
MongoDB中可以包含多个数据库,每个数据库下又可以包含多个集合,每个集合下又可以包含多个文档;每个文档是一个由键值对组成的BSON对象。