MongoDB 的 rbac
增:
不推荐:
db.tablename.insert([{}],{})
官方推荐:
db.tablename.insertOne({})
db.tablename.inserMany([{},{}])
删:
不推荐:
db.tablename.remove({})
官方推荐:
db.tablename.deletOne({条件}) # 删除符合条件的第一条
db.tablename.deletMany({条件}) # 删除符合条件的所有
改:
不推荐:
db.tablename.update({},{$set:{field:value}})
官方推荐:
db.tablename.updateOne({},{$set:{}})
db.tablename.updateMany({},{$set:{}})
修改器:
$set # 暴力修改
$unset # 强制删除字段
$inc +1/-1 # 引用增加
Array修改器:
$push
# list中的append 追加数据
updateOne({},{$push:{list:1}})
$pull
# list中的remove 删除某元素
updateOne({},{$pull:{list:1}})
$pushAll
# list中的extends 迭代追加最后追加数据
updateOne({},{$pushAll:{list:[1,2,3]}})
$pop
# list中的pop 删除第一个元素或者最后一个元素
updateOne({},{$pop:{list:-1}}) / updateOne({},{$pop:{list:1}})
$ —— 符合条件的下表 —— array 当中
[1,4,5,2,1] $=0
updateOne({list:1},{$set:{"list.$":6}})
# 存储符合条件元素的下标索引,只能存放一个下标 - 只能存放符合条件第一个
查:
db.tablename.find({})
fb.tablename.findOne({})
并列条件:
find({"name":"1","age":2})
# 或条件 - 不同字段的或
$or findOne({$or:[{"name":"1"},{"age":2}]})
子集 位置可以发生变化:
$in findOne({"age":{$in:[1,2,3,4,5]}})
完全符合 位置可以发生变化:
$all findOne({"age":{$all:[1,2,3,4]}})
sort limit skip
find({"age":{$all:[1,2,3,4]}}).sort({"key":-1})
find({"age":{$all:[1,2,3,4]}}).limit(5) # 只显示当前位置向下5条
find({"age":{$all:[1,2,3,4]}}).skip(5) # 跳过五条数据,决定当前位置
优先级
find({"age":{$all:[1,2,3,4]}}).sort({"key":-1}).skip(5).limit(5)