- 数据库,nosql(非关系型)
- 场景
解决大规模数据集合多重数据种类 - 新建data/db文件夹
在c盘下新建data文件夹,再在data文件夹中新建db文件夹 - 在下面文件夹中启动命令行
C:\Program Files\MongoDB\Server\3.4\bin - 指定数据存储目录(每次都需要指定)
命令行输入mongod --dbpath c:\data\db - 开启服务
命令行输入mongod - 配置环境变量,使mongod可以在任何地方运行
- 开启客户端
命令行输入mongo
注意:此命令行必须另外开启一个,mongod命令行是一直开启的(为了保障mongoDB服务开启)
mongoDB
- msyql和mongoDB区分
| mysql | mongoDb |
|---|---|
| database(库) | database(库) |
| table(表) | collection(集合) |
| row(一条数据) | document(文档) |
| column(字段) | field(区域) |
| 用mysql中间件 | 用mongodb中间件 |
| 返回数组 | 返回对象,需要toArr |
存储方式:
mysql 二维表
MongoDB json库操作:
- 查
show dbs - 查看当前库
db - 建
use 库名 //没有建,有就切换 - 删
db.dropDatabase() 删除当前库
- 查
- 集合(表)操作:
- 建
db.createCollection('表名',{配置})配置:{size:文件大小,capped:true,max:条数|文档数} capped定量 - 查
show collections / db.getCollectionNames() - 删
db.表|集合.drop()
- 建
- 文档(row)操作:
- 增:
db.集合.save({}) / db.集合.insert({}) 添加一条 db.集合.save([{},{}]) / db.集合.insert([{},{}]) insert 不会替换相同ID save会 - 删:
db.集合.deleteOne({}) db.集合.remove({},true) 一条 db.集合.remove({要删数据描述}) 多条 db.集合.remove({}) 清空表 - 改:
db.集合.udpate({要替换的数据},{替换后的},bl插入,bl替换) 替换后的: {\$set:{数据},$inc:{age:1}} - 查:
所有:db.集合.find(条件) 条数: db.集合.find().count() 去重:db.集合.distinct(key)- 条件
{age:22} age == 22 {age:{\$gt:22}} age > 22 {age:{\$lt:22}} age < 22 {age:{\$gte:22}} age>=22 {age:{\$lte:22}} age<=22 {age:[{\$lte:122},\{\$gte:22}]}age<=122 && age>=22 {$or:[{age:22},{age:122}]} 22 or 122 - 限定 (只显示number条)
db.集合.find().limit(number) - 跳过
db.集合.find().skip(number) - 查一条
db.集合.findOne()/db.集合.find.limit(1) - 排序
db.集合.find().sort({key:1/-1}) //1升序,-1降序 - db.集合.find({条件},{指定要显示列区域})
指定要显示列区域: 区域名username:1 显示着个区域,其他不显示 指定要显示列区域: 区域名username:0 不显示着个区域,其他显示 _id 是默认显示 - 实例
db.集合.find({条件},{指定显示区域}).skip(10).limit(10).sort({key:1})
- 条件
- 增:
nodejs + mongodb中间件
- require(‘mongodb’); 引入模块
- 创建客户端 mongoCt = mongodb.MongoClient
- 链接库 mongoCt.connect(‘协议://地址:端口/库名’,回调(err,db))
- 链接集合(表) user = db.collection(‘集合名’);
- user.API() 表操作 返回 对象
user.API().toArray((err,result)=>{reulst==arr})123456789101112131415let mongodb = require('mongodb');let mongoCt = mongodb.MongoClient;//创建客户端mongonCt.connect('mongodb://127.0.0.1:27017/库名'),(err,db)=>{true//链接集合truelet user = db.collection('user');true//集合操作trueuser.insertOne({},(err,result)=>{truetrueif(err){truetruetruethrow new Error();truetrue}else{truetruetrue...truetruetruedb.close();//关闭库truetrue}true});}