Mongodb 查询

基本方法

操作方法实例备注
读取匹配文档find/findOnedb.c.findOne()
读取匹配的第一个文档findOnedb.c.findOne()

拓展查询

操作方法实例备注
指定需要返回的键/值find/findOne({},{‘key’:1}))find/findOne 第二个参数指定 key 值(key为逻辑false,移除键)
$and默认情况
条件匹配 小于/小于等于$lt/$ltedb.c.find({‘age’:{‘$lt’:18}})
条件匹配 大于/大于等于$gt/$gtedb.c.find({‘age’:{‘$gt’:18}})
条件匹配 不等于$nedb.c.find({‘age’:{‘$ne’:18}})
条件匹配 多个值$indb.c.find({‘age’:{‘$in’:[18,28,38]}})一个键 多个值
条件匹配 过滤多个值$nindb.c.find({‘age’:{‘$in’:[18,28,38]}})$in 取反
条件匹配 多个值$ordb.c.find({‘$or’:[{‘age’:18},{‘sex’:’female’}]})多个键 (第一个条件匹配更多 更高效)
余值匹配$moddb.c.find({‘age’:{‘$mod’:[{5,1]})将查询的值除以第一个值,若余数等于第二个值,则匹配成功
取反$notdb.c.find({‘age’:{‘$not’:{“$in”:[{5,1]}})元条件 可以其他条件之上使用
判定键位存在$existsdb.c.find({‘age’:{“$exists”:true}
db.c.find({‘age’:{“$in”:[{null],”$exists”:true})
null 类型会匹配值不为 null 的文档,$exists 解决这问题
匹配多个 数组元素$alldb.c.find({‘type’:{“$all”:[‘a’,’b’]})匹配type 中含有[‘a’,’b’,…]
匹配 数组长度$sizedb.c.find({‘type’:{“$size”:3})
控制 匹配数组返回数据长度$slicedb.c.find({},{‘type’:{“$slice”:3})
db.c.find({},{‘type’:{“$slice”:[3,10]})
前三个 type (-3 后三个);也可以是截取(4-13);(除非特别声明,否则使用“$slice“时将返回所有键)
范围匹配$elemMatchdb.c.find({‘age’:{“$elemMatch”:{‘$gl’:10,’$lt’:20}})解决 age为数组时; 在数组中范围查找的 缺陷
自定义条件$wheredb.c.find({$where:function(){if(….){return true}else{return false})需要将文档从BSON 转为js 运行,效率低 慎用

游标

操作方法实例备注
限制最大返回数量limitdb.c.find().limit(3)
略过匹配文档skipdb.c.find().skip(3)
排序sortdb.c.find().sort({‘a’:1})1升序 -1 降序;不同键值类型从小到大:null<Number<String<Object
<Array<Blob<Boolean<
Date<Timestamp<RegExp
扫描文档上线$maxScandb.c.find(a)._addSpecial(“$macScan”:10)匹配 到指定数量的文档,要多少查询多少
扫描文档上限$maxdb.c.find({}).max({‘age’:28})最大值 需要建立索引
扫描文档下限$mindb.c.find({}).min({‘age’:18})最小值,max min 配合使用
显示磁盘信息$showDiskLoc._addSpecial(“$showDiskLoc” , true)
过滤 键$showDiskLocdb.c.find({}).hint({age:1})
快照查询snapshopdb.c.find({}).snapshop()_index 检索 避免 文档重复返回,但影响速度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值