一、MongoDB相关概念
数据库
一个mongodb中可以建立多个数据库。
MongoDB的默认数据库为"db",该数据库存储在data目录中。
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
集合
集合就是 MongoDB 文档组,类似于关系数据库中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
文档
文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
SQL : 数据库 -> 表格 -> 行 -> 列
MongoDB:数据库 -> 集合 -> 文档 -> 字段
二、本地运行服务器
在 MongoDB 安装目录的 bin 目录下执行 mongodb:
默认地址为127.0.0.1,默认端口号为27017。
三、CRUD操作
1.创建集合:
db.createCollection(name, options)
2.删除集合:
db.collection.drop()
3.插入文档
db.COLLECTION_NAME.insert(document)
4.更新文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
-
query : update的查询条件,类似sql update查询内where后面的。
-
update : update的对象和一些更新的操作符等,也可以理解为sql update查询内set后面的
-
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
-
multi : 可选,mongodb
默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。 -
writeConcern :可选,抛出异常的级别。
5.删除文档
db.inventory.deleteMany({ status : "A" })
db.inventory.deleteOne( { status: "D" } )
6.查询文档
db.collection.find(query, projection) //返回非结构化结果
db.collection.find(query, projection).pretty() //返回结构化结果
条件查询跳转
条件操作符:
(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte
四、可视化管理工具
Robo 3T