前言
在用了好长时间的MySQL之后总感觉MySQL建表好麻烦,虽说有可视化工具.但是它不能随心所欲的创建,也不能想添几个字段就添几个字段,它的SQL语句也好多...反正就是各种不舒服,这个关系型的MySQL就这么麻烦,那我看看NoSQL的呗.于是乎就找到了MongoDB,
开搞
MongoDB
- MongoDB是一个NoSQL的数据库
- MongoDB是一款文档型数据库
- 数据库指的就是一个存储数据的仓库
数据库可以使我们完成对数据的持久化的操作
- MongoDB数据库中存储的数据的基本单位就是文档,
MongoDB中存储的就是文档,所谓文档其实就是一个“JSON”
- MongoDB中的“JSON”我们称为BSON,比普通的JSON的功能要更加的强大
- MongoDB数据库使用的是JavaScript进行操作的,在MongoDB含有一个对ES标准实现的引擎,
在MongoDB中所有ES中的语法中都可以使用
看一下具体操作:
- MongoDB的基本的指令
- 启动服务器
mongod --dbpath 路径 --port 端口号
- 启动客户端
mongo
- MongoDB的CRUD的操作
- 基本操作
use 数据库//在没有创建的时候可以创建,创建了的就使用
- 进入指定的数据库
show dbs
- 显示所有的数据库
show collections
- 显示数据库中所有的集合
db
- 显示当前所在的数据库
- 向数据库中插入文档
- db.<collection>(集合的名字).insert()
- insert()可以向集合中插入一个或多个文档
db.student.insert({"name":"zhangsan",age:18,genger:"男"});
db.student.insert([
{"name":"王五",age:25,gender:"man"},
{"name":"赵六",age:26,gender:"woman"},
{"name":"周七",age:27,gender:"woman"},
{"name":"刘八",age:28,gender:"man"},
{"name":"陈九",age:29,gender:"woman"},
]);
- db.collection.insertOne()
- 向集合中插入一个文档
- db.collection.insertMany()
- 向集合中插入多个文档
- 查询数据库中的文档
- db.collection.find()
- 可以根据指定条件从集合中查询所有符合条件的文档
db.student.find({"name":"张三"});
- 返回的是一个数组
- db.collection.findOne()
- 查询第一个符合条件的文档
- 返回的是一个对象
db.student.findOne({age:28}).gender;
- db.collection.find().count()
- 查询符合条件的文档的数量
- 修改数据库中的文档
- db.collection.update()
- 会修改、替换集合中的一个或多个文档
根据条件修改:
db.student.updateOne(
{"_id":ObjectId("5e520584a7dc1d5a5eae0e5d")},
{
$set: {"name":"张三",age:111,gender:"woman"}
}
);
- db.collection.updateOne()
- 修改集合中的一个文档
- db.collection.updateMany()
- 修改集合中的多个文档
- db.collection.replaceOne()
- 替换集合中的一个文档
- 删除集合中的文档
- db.collection.remove()
- 删除集合中的一个或多个文档(默认删除多个)
根据条件删除:
db.student.updateOne(
{"_id":ObjectId("5e520584a7dc1d5a5eae0e5d")},
{
$unset: {"name":"zhangsan",age:121212,gender:"woman","address":"流沙河"}
}
);
- db.collection.deleteOne()
- 删除集合中的一个文档
也可以写成:db.student.remove({age:2222},true)
- db.collection.deleteMany()
- 删除集合中的多个文档
- 清空一个集合
db.collection.remove({}),性能差
- 删除一个集合
db.collection.drop()
- 删除一个数据库
db.dropDatabase()
网友评论