MongoDB json
mongodb命令行操作方式: 声明式 | obj.api()
库操作:
指令(库)
查: show dbs
show 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)
替换后的:
{
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})
查找跳过10条限定显示10条 升序排列
db.insertOne({数据描述})
在node中使用基本过程
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() 关闭库链接