zoukankan      html  css  js  c++  java
  • mongoDB6--查询表达式

    接上一篇总结《深入查询表达式1》

    上一篇我们介绍了mongodb的一些表达式的深入应用。可能大家觉得有些
    指令比较难记,下面给大家介绍一些简洁的表达式。

    给大家介绍的是以下两个指令:

    分别是$where、$regex

    (1)$where指令
    我们使用$where来代替之前的查询指令。
    我们查询商品价格大于5000的商品:


    $where的原理是,在mongodb中,存储的是一个一个的对象,对象中是各种属性,
    我们可以把对象一个一个的遍历一遍,遍历的过程中就会把磁盘上的二进制数据
    转化成一个个json对象,然后把其中的属性值读出来,那么我们就可以使用js中的
    判断式去引用。

    使用$where会使查询表达式变得非常的简洁易懂,如:
    例:取出价格大于100且小于300,或者大于3000且小于5000的商品($or)
    使用一般的表达式:
    db.goods.find({$or:[{$and:[{shop_price:{$gt:100}},{shop_price:{$lt:300}}]},{$and:[{shop_price:{$gt:3000}},{shop_price:{$lt:5000}}]}]},{shop_price:1,goods_name:1,_id:0});


    使用$where表达式
    db.goods.find({$where:'this.shop_price>100 && this.shop_price<300 || this.shop_price>3000 && this.shop_price<5000'},{shop_price:1,goods_name:1,_id:0});

    (2)$regex
    $regex表达还实际起到是“正则表达式”的作用。
    例:查询商品名开头含有“诺基亚”的商品
    db.goods.find({goods_name:{$regex:/^诺基亚.*/}},{goods_name:1,_id:0});


    不推荐使用$where和$regex表达式操作大量数据,原因是因为必须将磁盘上的二进制数据
    转化成一个个json对象,才能使用$where和$regex表达式将数据读出来,而不是
    直接操作二进制数据,这样查询大量数据就会影响效率。

    至此,我们的查询表达式全部介绍完毕。
    转载请注明出处:
     
     
  • 相关阅读:
    c# DataTable 转为 List 类型
    .net配置文件读取
    文件重命名(递归)
    sharepoint 网站创建
    Sharepoint添加顶部导航菜单
    .net sharepoint文档库操作
    c#下载共享文件夹下的文件并记录错误日志
    JS命名空间实例
    js时间处理函数
    模块
  • 原文地址:https://www.cnblogs.com/gaochsh/p/6287662.html
Copyright © 2011-2022 走看看