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实现的功能

  • 相关阅读:
    Windows 下安装Git工具及基础使用
    集合常用类及方法汇总
    集合类(Collection和Map接口)简介
    【汇总】java中数组的声明、初始化及遍历
    java解析从接口获取的json内容并写到excle(只写与标题匹配的值,并非把所有的接口返回值都写进去)
    java解析多层嵌套json字符串
    java容器(数组和集合)内元素的排序问题
    FileWriter实现从一个文件中读取内容并写到另一个文件中
    FileReader实现读取文件内容并输出到屏幕上
    FileOutputStream将从一个文件中读取的内容写到另一个文件中
  • 原文地址:https://www.cnblogs.com/Linc2010/p/5771362.html
Copyright © 2011-2022 走看看