zoukankan      html  css  js  c++  java
  • MongoDB查询语言

    先插入记录

    for(var i-1;i<11,i++)  db.cus.insert({"id":i,"name":"张三","age":20+i})

    (1)精确匹配器

      例如:db.cus.find({"id":9})  db.cus.find({"name":"张三","age":21})

    (2)$lt表示小于

      例如:db.cus.find({age:{$lt:25}})

    (3)$lte表示小于等于

      例如:db.cus.find({age:{$lte:25}})

    (4)$gt表示大于

      例如:db.cus.find({age:{$gt:25}})

    (5)$gte表示大于

      例如:db.cus.find({age:{$gte:25}})

    (6)$in表示返回的key的值在某些value范围内

      例如:db.cus.find({id:{$in:[1,2,3,4]}})

    (7)$nin表示返回的key的值在某些value范围之外,注意 $nin是比较低效的查询选择器,他会全表扫描,因此最好不要单独使用$nin

      例如:db.cus.find({id:{$nin:[1,2]}})

    (8)$ne表示不等于,单据使用,它也不会利用索引的优势,反而会全表扫描,最好与其他查询选择器配合使用。

      例如:db.cus.find({id:{$ne:1}})

    (9)$or表示或运算的选择器,主要用于对两个不同key对应的文档进行连接

      例如:db.cus.find({$or:[{id:1},{age:22}]})

    (10)$and表示与运算的选择器,主要用于对两个不同key对应的文档进行连接

      例如:db.cus.find({$or:[{id:1},{age:22}]})

    (11)$exists 与关系数据库中的exists不一样,因为mongodb的表结构是不固定的,有时候需要返回包含某个字段的所有记录或者不包含某个字段的所有记录,$exists这个时候就派上了用场

      例如:db.cus.find({id:{$exists:false})  db.cus.find({"id":null})

    (12)嵌套查询--1

       插入语句

        for(var i-1;i<11,i++)  db.cus.insert({"id":i,"name":"张三"},"detail":{"age":20+i,"sex":"男"})

         查询语句如下

        db.cus.find({'detail.age':21})

    (13)嵌套查询--2

       插入语句

        for(var i-1;i<11,i++)  db.cus.insert({"id":i,"name":"张三"},"detail":[{"age":20+i,"sex":"男"},{"address":"广州市白云区","phone":"020-111111"}])

         查询语句如下

        db.cus.find({'detail.1.address':"广州市白云区"}) detail.1

        表示要取数据中第二位置处的元素。

    (14)查询显示表中字段

        例如:db.cus.find({"age",{$gte:25}},{_id:0,id:0,name:1,age:1})

          表示查询age大于25的所有记录,并且只显示name,age两个字段

    (15)排序字段sort

        例如:db.cus.find({}).sort({id:-1}) 表示降序排序

           db.cus.find({}).skip(2).limit(3).sort({id:-1})

            表示先对结果集合排序(降序排序),然后跳过2行记录,从这个位置开始返回接下来的3条记录。

                           注意:这里传递给skip的参数如果很大,那么查询语句将会扫描大量的文档,这样执行性能将会底下,因此我们在查询语句中尽量不使用skip,用其他方法来代替skip实现的功能

  • 相关阅读:
    NopCommerce代码结构
    至于你信不信,我反正是信了——以类为单位的编程思想
    男人的小金库藏在哪里?——公共数据集Model
    老婆使用说明书——注册系统的逻辑与结构
    ASP.NET学习参考站点
    学了N年英语,你学会翻译了吗?——最基本的数据库连接
    编程也讲禅,您读过《金刚经》吗?——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(上)
    文件夹病毒专杀工具
    不想当将军的学生,不是好程序员——数据访问层DAL——程序结构的思考
    html的标签一共有多少个?
  • 原文地址:https://www.cnblogs.com/Linc2010/p/5771362.html
Copyright © 2011-2022 走看看