查询表达式

三世轮回 提交于 2020-04-27 10:33:12

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 : /^诺基亚.*/} })

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!