首页 > 其他 > 详细

查询表达式

时间:2020-04-25 14:33:20      阅读:45      评论:0      收藏:0      [点我收藏+]

mongo中的查询表达式都需要用对象表示

1. 最简单的查询表达式

  {field: value},是指查询field列的值为value的文档

2. $ne -- != 查询表达式

  {field : { $ne : value }} ,  查field列的值不等于 value的文档

  db.goods.find({cat_id : {$ne : 3}}, {goods_id : 1, car_id : 1, goods_name : 1, _id : 0} )   _id: 0 表示不查询_Id 列

3. $gt -- > 查询表达式

  db.goods.find({shop_price : { $gt : 3000} }, {goods_id:1, shop_price : 1, _id : 0 })

  $gt -- > , $gte -- >=, $in -- in, $lt -- < , $lte -- <=, $ne -- !=, $nin -- not in  

4. $and, $nin, $nor

  db.goods.find({ $and : [{ cat_id : {$ne : 3}}, {cat_id : {$ne : 11}}] }, {cat_Id : 1, goods_name : 1, _id : 0 });

  db.goods.find({ cat_id : {$nin : [3, 11]}}, {cat_id : 1, goods_name : 1, _id : 0});

  db.goods.find({ $nor : [ {cat_Id: 3}, {cat_Id : 11}]}, {cat_Id : 1, goods_name : 1, _Id : 0});

5. $mod 

  db.goods.find({ good_id : { $mod : [5, 0 ]} }, {good_id : 1, good_name : 1, _id : 0});    --查询 good_Id 对5求模后等于0的记录

6. $exists 

  db.stu.find({ age : {$exists : 1}});   -- 查询有age 列的数据

7. $type

  db.stu.find({ age : {$type : 1}});  --查询 age 值为数字的数据

8. $all

  db.stu.inert({name : ‘lily‘, hobby : [‘a‘, ‘b‘, ‘c‘]})

  db.stu.insert({name: ‘lucy‘, bobby : [‘b‘,‘c‘,‘e‘]})

  db.stu.find({ hobby : { $all : [‘b‘, ‘c‘, ‘z‘ ]}})   --查询 子文档 hobby中包含有 b,c,z的数据

9. $where

  db.goods.find({ $where : ‘this.shop_price > 5000‘}, {shop_price : 1, goods_name : 1, _id : 0}}

  $where 会将二进制数据转换成js引擎能识别的json,效率上低

10. $regex

  db.goods.find({ good_name : { $regex : /^诺基亚.*/} })

查询表达式

原文:https://www.cnblogs.com/wxxiong/p/12772603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!