MongoDB简介
- MongoDB是一个NoSQL的数据库
- MongoDB是一款文档型数据库
- 数据库指的就是一个存储数据的仓库,数据库可以使我们完成对数据的持久化的操作
- MongoDB数据库中存储的数据的基本单位就是文档,(文档就相当于关系型数据库中的记录,集合相当于关系型数据库中的表)
- MongoDB中存储的就是文档,所谓文档其实就是一个 “JSON”格式:如{“name”: “张三”, “age”: 18, “gender”: “男”}(写命令的时候属性名的引号可以省略)
- MongoDB中的 “JSON” 我们称为BSON(二进制形式JSON),比普通的JSON的功能要更加的强大
- MongoDB数据库使的终端用的是JavaScript进行操作的,在MongoDB含有一个对ES标准实现的引擎,在MongoDB中所有ES中的语法中都可以使用
MongoDB基本的指令
1. 启动服务器
mongod --dbpath 路径 --port 端口号
2. 启动客户端
mongo
3. MongoDB的CRUD操作
1)基本操作
use 数据库
- 进入指定的数据库
show dbs
- 显示所有的数据库
show collections
- 显示数据库中所有的集合
db
- 显示当前所在的数据库
2)向数据库中插入文档
db.[集合名称].insert(对象或对象数组)
- insert()可以向集合中插入一个或多个文档
db.[集合名称].insertOne(对象)
- 向集合中插入一个文档
db.[集合名称].insertMany(对象数组)
- 向集合中插入多个文档
insertOne和insertMany是在3.2版本时对insert的拆分,目的是使语义上更明确(其余的删、改、查方法也是这样)
3)查询数据库中的文档
db.[集合名称].find(查询条件)
- 可以根据指定条件从集合中查询所有符合条件(条件也是一个对象)的文档(无条件或条件为{}表示查询所有文档)
- 返回的是一个数组
db.[集合名称].findOne(查询条件)
- 查询符合条件的第一个文档
- 返回的是一个对象
db.[集合名称].find().count()
- 查询符合条件的文档的数量
4)修改数据库中的文档
db.[集合名称].update(查询条件, 新对象)
- 可以修改、替换集合中的一个或多个文档,默认会使用新对象完全替换旧对象(旧对象中有而新对象中没有的属性会没掉)
- 如果是要修改部分属性,而不是替换整个对象,可以使用“修改操作符”
$set 可以用来修改文档中的指定属性
eg:db.stus.insert({name:"沙和尚", age:23, gender:"男"});
db.stus.update({name:"沙和尚"},{$set:{age:28,address:"流沙河"}});
$unset 可以用来删除文档中的指定属性
- 如果查询到了多个文档,update默认只会修改第一个;要修改多个要写第三个参数(配置参数)
db.[集合名称].updateOne()
- 修改集合中的一个文档
db.[集合名称].updateMany()
- 修改集合中的多个文档
db.[集合名称].replaceOne()
- 替换集合中的一个文档
5)删除集合中的文档
db.[集合名称].remove(删除条件)
- 删除集合中的一个或多个文档(默认删除多个)
db.[集合名称].deleteOne()
- 删除集合中的一个文档
db.[集合名称].deleteMany()
- 删除集合中的多个文档
db.[集合名称].remove({})
- 清空一个集合
- 性能差
db.[集合名称].drop()
- 删除一个集合
- 如果这是数据库中的最后一个集合,则删除了这个集合后数据库也会被删除
db.dropDatabase()
- 删除一个数据库
前方高能,请注意:在开发中千万不要真的去删数据,因为删了就再也找不回来了,我们可以增加一个字段(比如isDeleted,为0表示未删,1表示已删),查询数据库时可以加上isDeleted:0这个查询条件,这样表示已删的数据就不会被查出来,就相当于是被删除了。