• mongodb 学习笔记 3 --- 查询


    在mongodb的查询中可以通过使用如下操作符进行深度查询

    1.条件操作符

    $gt  $gte : >  >=   {"age":{"$gt":18}}

    $lt   $lte:   <  <=   

    $or : 或  {"$or":[{"name":"jack"},{"name":"mike"}]}

    $in/$nin : 在集合中/不在集合中  {"age":{"$in":[18,20]}}

    $and: 且 用法同$or

    $not:  非  {"name":{"$not":"jack"}}

    $mod: 取模   {"age":{"$mod":[5,1]}}   选出除以5余数得1的结果   

    $exists:  查询时附加该键值是否存在   {"name":{"$exists":true}}

    $all: 查询的集合包含条件中全部的内容,但是是无序的  {"name":{"$all":["jack","mike"]}}  中招的可能是 name:["mike","jack","mary"]   ,也有 name:["miky","mike","jack"] 

    $size: 查询出限定属性下长度值为给出的size的数组  {"list":{"$size":2}}

    $slice: 取值正负数字,返回多少条文档  {"list":{"$slice":2}}

    $elemMatch : 在查询数组时限定取值条件  {"list":{"$elemMatch":{"$gt":10,"$lt":20}}}   如果不加 $elemMatch 则会匹配到 list:[5,25]  因为5<20  25>10  只能应用在数组类型的属性中

    $where :  会执行一段js {"$where":function(){return ...}}

    除了操作符之外,还有游标操作辅助查询

    2.游标操作

    next: 遍历游标,并将其取出游标,在shell中执行一次后默认后面全部执行,最终会导致游标结果集为空

    hasNext: 检查游标是否为空

    forEach: 遍历,和js数组中的forEach功效一致

    limit: 取返回结果的前n个,不足n个全部返回

    skip: 跳过返回结果的前n个

    sort: 根据返回结果中的某一字段进行排序 1 升序  -1 降序

    一些总结

    要避免使用skip跳过大量数据

  • 相关阅读:
    使用history.back()出现"警告: 网页已过期的解决办法"
    thinkphp5 如何将带分隔符的字符串转换成索引数组,并且遍历到前台
    MYSQL查询某字段中以逗号分隔的字符串的方法
    SpringBoot项目docker化
    全选Js
    【同步工具类】CountDownLatch
    Elasticsearch 2.3.2 安装部署
    从网络获取多张二维码图片,压缩打包下载
    传统的线程互斥技术:Synchronized关键字
    定时器的编写
  • 原文地址:https://www.cnblogs.com/JhoneLee/p/9204601.html
Copyright © 2020-2023  润新知