库(DataBase)
MongoDB中的库就类似于传统关系型数据库中库的概念,用来通过不同的库隔离不同的应用数据。
MongoDB中可以建立多个数据库。每一个数据库都有自己的集合和权限,不同的数据库也放置在不同的文件中。默认的数据库为test,数据库存储在启动指定的data目录中。
集合(Collection)
集合就是MongoDB文档组,类似于RDBMS(关系数据库管理系统:Relation DataBase Management System)中表的概念。
集合存在于数据库中,一个库中可以创建多个集合。每个集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
文档
文档集合中一条条记录,是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是MongoDB非常突出的特点。
举个栗子
{"name":"xiang","age":"18"}
关系总结
RDBMS | MongoDB |
---|---|
数据库(database ) | 数据库(database ) |
表(table) | 集合(collection ) |
行(row) | 文档 (document ) |
列(column ) | 字段(field ) |
基本操作
库
查看所有的库,默认连接上使用的是test数据库
user 数据库名,若没有改库,则会自动创建。
细心的人会发现,刚刚创建数据库的没有啊,这是因为MongoDB的设计在库中没有任何集合的时候,默认是不显示的。
查看当前正在使用的数据库。
那我们现在给 数据库xiang中插入一条简单的数据。就会发现数据库xiang查询出来了。
注意:
- admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
- local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
- config :当Mongo用于分片设置时, config数据库在内部使用,用于保存分片的相关信息。
删除数据库
默认是删除当前选中的数据库。
db.dropDatabase();
注意大小写。
提示删除失败也。
"not authorized on xiang to execute command { dropDatabase:
解决办法:
Mongodb默认是不需要用户密码就可以连接的,如果使用命令报错"not authorized on admin to execute command ",则表示当前登陆用户不具备相应权限;
过创建一个用户,赋予用户root权限
注意:在createUser之前先use admin切换一下。
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
);
添加用户权限成功之后,使用root用户登陆,再次使用命令即可成功!!!
删除成功。
今天就到这里了 洗洗睡觉。