mongodb 的查询深入剖析
2017-03-04 14:53
267 查看
db.表名.find({goods_id:3}); //查询出 goods_id 为 3 的数据
db.表名.find({cat_id:{$ne:3}},{cat_id:1,goods_name:1,_id:0});
//查询出分类 id 不等于 3 的商品名称和分类 id
db.表名.find({cat_id:{$not:3}},{cat_id:1,goods_name:1,_id:0});
//查询出分类 id 不等于 3 的商品名称和分类 id
$lt
小于
$lte
小于或等于
$gt 大于
$gte 大于或等于
$in in(如 cat_id:{$in:[3,4]} 分类 id 是 3和 4 的)
$nin not in(如 cat_id:{$nin:[3,4]} 分类 id 不是 3和 4 的)
$all 无对应项,指数组中所有单元匹配
db.表名.find({$and:[{shop_price:{$gte:100}},{shop_price:{$lte:500}}]},{shop_price:1,goods_name:1});
////查询出商品价格大于等于100 and 小于等于500 的商品价格、商品名称
db.表名.find({$nor:[{cat_id:3},{cat_id:11}]},{shop_price:1,goods_name:1}); //查询出分类 id 不等于 3 和 分类 id 不等于 11 的数据
db.表名.find({goods_id:{$mod:[5,0]}},{cat_id:1,goods_name:1,_id:0}); //查询出商品 id 模 5 等于0 的分类 id 和 商品名称
db.表名.find({age:{$exists:1}}); //查询出存在年龄属性的数据
db.表名.find({age:{$type:1}}); //查询出年龄属性类型为 double 类型的
2
字符串类型(更多类型请百度)
db.表名.find({hobby:{$all:['a','b']}}); //查询出爱好中有 a 和 b 的数据(必须都满足)
db.表名.find({$where:'this.age>18 && this.age<25'}); //查询出所有年龄大于 18 并且小于 25 的数据(必须要把二进制数据再转换成 json 对象进行匹配,所以效率比较低,而其他条件表达式只通过二进制比对形式匹配。)
db.表名.find({goods_name:{$regex:/^诺基亚.*/}}); //正则匹配查询出所有数据中商品名称诺基亚开头的(效率不高,慎用)
db.表名.find().sort({age:1/-1}); //按年龄排序(1 为升序,2为降序)
db.表名.find({cat_id:{$ne:3}},{cat_id:1,goods_name:1,_id:0});
//查询出分类 id 不等于 3 的商品名称和分类 id
db.表名.find({cat_id:{$not:3}},{cat_id:1,goods_name:1,_id:0});
//查询出分类 id 不等于 3 的商品名称和分类 id
$lt
小于
$lte
小于或等于
$gt 大于
$gte 大于或等于
$in in(如 cat_id:{$in:[3,4]} 分类 id 是 3和 4 的)
$nin not in(如 cat_id:{$nin:[3,4]} 分类 id 不是 3和 4 的)
$all 无对应项,指数组中所有单元匹配
db.表名.find({$and:[{shop_price:{$gte:100}},{shop_price:{$lte:500}}]},{shop_price:1,goods_name:1});
////查询出商品价格大于等于100 and 小于等于500 的商品价格、商品名称
db.表名.find({$nor:[{cat_id:3},{cat_id:11}]},{shop_price:1,goods_name:1}); //查询出分类 id 不等于 3 和 分类 id 不等于 11 的数据
db.表名.find({goods_id:{$mod:[5,0]}},{cat_id:1,goods_name:1,_id:0}); //查询出商品 id 模 5 等于0 的分类 id 和 商品名称
db.表名.find({age:{$exists:1}}); //查询出存在年龄属性的数据
db.表名.find({age:{$type:1}}); //查询出年龄属性类型为 double 类型的
2
字符串类型(更多类型请百度)
db.表名.find({hobby:{$all:['a','b']}}); //查询出爱好中有 a 和 b 的数据(必须都满足)
db.表名.find({$where:'this.age>18 && this.age<25'}); //查询出所有年龄大于 18 并且小于 25 的数据(必须要把二进制数据再转换成 json 对象进行匹配,所以效率比较低,而其他条件表达式只通过二进制比对形式匹配。)
db.表名.find({goods_name:{$regex:/^诺基亚.*/}}); //正则匹配查询出所有数据中商品名称诺基亚开头的(效率不高,慎用)
db.表名.find().sort({age:1/-1}); //按年龄排序(1 为升序,2为降序)
相关文章推荐
- 深入剖析MongoDB架构
- 深入剖析MongoDB架构
- MongoDB之DBref(关联插入,查询,删除) 实例深入
- MongoDB之DBref(关联插入,查询,删除) 实例深入
- MongoDB之DBref(关联插入,查询,删除) 实例深入
- 深入讲解MongoDB的慢日志查询(profile)
- MongoDB之DBref(关联插入,查询,删除) 实例深入
- 深入剖析MongoDB
- 深入剖析MongoDB架构
- 【MongoDb探究】06-深入查询表达式2
- MongoDB之DBref(关联插入,查询,删除) 实例深入
- 深入剖析MongoDB架构(数据存储架构)
- Oracle 深入剖析之一:Select语句查询的原理 [转载请注明]
- 【MongoDb探究】05-深入查询表达式1
- 深入剖析MongoDB架构
- MongoDB oplog 深入剖析
- MongoDB oplog 深入剖析
- jQuery.API源码深入剖析以及应用实现(4) - 选择器篇(下)
- mongodb- Java API 查询操作
- MongoDB 之旅(四) 深入学习