mongDb在node中的操作
Posted 1179929172-zh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongDb在node中的操作相关的知识,希望对你有一定的参考价值。
mongoDb
干嘛的:数据库,nosql(非关系型|缓存型)
场景:解决大规模数据集合多重数据种类
下载:https://www.mongodb.com/download-center
安装:https://www.cnblogs.com/keyi/p/10984514.html
测试服务端是否启动:
启动客户端: 安装目录\\Server\\4.0\\bin\\ mongo 回车
手动启动服务端:安装目录\\Server\\4.0\\bin\\ mongod 回车
port=27017 默认端口
mongodb://127.0.0.1:27017 协议+IP+端口
指定数据存储目录: 需要指定一次
mongod --dbpath c:\\data\\db db目录要手动创建
环境变量:为了在任意盘符下去启动客户端和服务端 mongod服务端|mongo客户端
我的电脑->属性->高级配置->环境变量-》 + key:value
开启客户端: mongo 回车
UI工具软件: 收费(下载+缴费)
原生命令行(shell): cmd->mongo回车 git bash - > mongo回车 webstrom->dos/linux
nodejs: 安装mongodb的包(客户端)
和mysql对比
名词
mysql mongoDb
database(库) database(库)
table(表) collection(集合)
row(一条数据) document(文档)
column(字段) field(区域)
...
存储方式:
mysql 二维表
MongoDB json
mongodb命令行操作方式: 声明式 | obj.api()
库操作:
查: show dbs
db 查看当前库
建: use 库名 没有建,有就切换
集合(表)操作:
建:db.createCollection(‘表名‘,配置)
配置:size:文件大小,capped:true,max:条数|文档数 capped定量
db.表(集合).isCapped() 返回 true/false 是否是定量
查:show collections / db.getCollectionNames()
删:db.表|集合.drop()
文档(row)操作:
增:
db.集合.save() / db.集合.insert() 添加一条
db.insertOne()
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
key:value,key2,value2 value && value2
name:/正则/
db.集合.find(条件,指定要显示列区域)
指定要显示列区域: 区域名username:1 显示着个区域,其他不显示
指定要显示列区域: 区域名username:0 不显示着个区域,其他显示
_id 是默认显示
限定:
db.集合.find().limit(number) 限定
db.集合.find().skip(number) 跳过
db.集合.findOne() / db.集合.find().limit(1) 查询第一条
排
升:db.集合.find().sort(key:1,key2:-1)
降:db.集合.find().sort(key:-1)
db.集合.find(条件,指定显示区域).skip(10).limit(10).sort(key:1)
db.insertOne(数据描述)
mongodb 客户端包 mongodb | mongoos
1. require(‘mongodb‘); 引入模块 第三方模块
2. 创建客户端 mongoCt = mongodb.MongoClient
3. 创建链接 mongoCt.connect(‘协议://地址:端口‘,回调(err,client))
3.5 链库 client.db(‘库名‘)
4. 链接集合(表) user = db.collection(‘集合名‘);
5. user.API() 集合操作 返回 对象
one === 1 Many 多个
增
insertOne(对象数据,(err,res)=>) res = 对象
insertMany(arr数据,(err,res)=>) res = 对象
res.result.n 结果 ok 状态
res.ops内容 数组
result.insertedId 插入后的id
删:
deleteOne(条件,(err,result)=>)
res.result.n 结果 ok 状态
result.deletedCount:1 删除的条数
改:
updateOne(条件,更新后,(err,res)=>)
updateMany(条件,更新后,(err,res)=>)
res.result.n 结果 ok 状态
res.modifiedCount 修改的条数
updateMany(条件,更新后,配置,(err,res)=>)
配置: upsert:true 插入
projection:true 全局替换
查:
user.find(条件,skip:1,limit:1,projection:key:1,(err,result)=>result=对象)
user.find(条件,projection:key:0).toArray((err,result)=>reulst==arr)
user.countDocuments((err,num)=>num返回数量)
排序
user.find(..).sort(key:-1).toArray..
user.find(,projection:,sort:key:-1).toArray..
6. client.close() 关闭库链接
以上是关于mongDb在node中的操作的主要内容,如果未能解决你的问题,请参考以下文章