- 数据库,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});}