理解Mongo中的一些概念:
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html
文档是一组键值(key-value)对MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点,下表列出了 RDBMS 与 MongoDB 对应的术语:
RDBMS | MongoDB |
---|---|
数据库 | 数据库 |
表格 | 集合 |
行 | 文档 |
列 | 字段 |
表联合 | 嵌入文档 |
主键 | 主键 (MongoDB 提供了 key 为 _id ) |
集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。 集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。 比如,我们可以将以下不同数据结构的文档插入到集合中:
代码语言:javascript复制{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"菜鸟教程","num":5}
当第一个文档插入时,集合就会被创建。
命令
代码语言:javascript复制 db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]}) #添加管理员
db.dropUser(<user_name>) #删除管理员
mongo -uadmin -p123456 #登陆
show dbs #查看所有数据库的列表
db # 显示当前数据库对象或集合
use local #连接到指定数据库 或者 创建数据库
db.dropDatabase() #删除数据库
db.test.insert({"name":"dream"}) #插入文档(test表示集合)(数据类型就是BSON,JSON的扩展,支持的值更加丰富,可以使用js批量插入)
show collections 或 show tables #查看集合
db.test.find() #查看集合里的所有文档
db.test.findOne() #查看集合里的第一个文档
db.test.remove({条件}) #删除文档(db.test.remove({"name":qcy})删除name=qcy)
db.collection.drop() #删除集合
原有数据库
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。