1. 关系运算符

$eq   等于

$lt     小于

$lte   小于等于

$gt    大于

$gte  大于等于

$in    在范围内

  1. //查询名字为“小明”和“小刚”的
  2. $condition = [
  3. 'name' => ['$in' => ['小明','小刚']]
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);

2. 逻辑运算符

$and  并且(默认的逻辑关系就是并且)

  1. //查询名年龄大于10并小于30的
  2. $condition = [
  3. '$and' => [
  4. ['age' => ['$gt' => 10]],
  5. ['age' => ['$lt' => 30]]
  6. ]
  7. ];
  8. $result = $collection -> find($condition,['_id'=>false]);

  $and  简写方式:

  1. //查询名年龄大于10并小于30的
  2. $condition = [
  3. 'age' => ['$gt' => 10,'$lt' => 30]
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);

$or  或者

  1. //查询名年龄等于10或等于30的
  2. $condition = [
  3. '$or' => [
  4. ['age' => ['$eq' => 10]],
  5. ['age' => ['$eq' => 30]]
  6. ]
  7. ];
  8. $result = $collection -> find($condition,['_id'=>false]);

$not  非

  1. //查询名年龄不等于10的
  2. $condition = [
  3. 'age' => ['$not' => ['$eq' => 10]]
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);

3.  数组条件

  • 当属性的值是数组时,查询需特殊处理

    •   查询条件中,属性的值是字符串,表示查找的条件中包含该字符串
  1. //查询hobby里包含swim的
  2. $condition = [
  3. 'hobby' => 'swim'
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);
    •   查询条件中,属性的值包含多个内容,使用$all连接
  1. //查询hobby里包含swim和climb的
  2. $condition = [
  3. 'hobby' => ['$all' => ['swim','climb']]
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);
    •   查询条件中,属性的值是一个数组,表示严格等于数组的元素
  1. //查询hobby里就是swim和climb的
  2. $condition = [
  3. 'hobby' => ['swim','climb']
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);

4. 内嵌文档

内嵌文档的表现形式类似于属性的值又是一个文档

例如:{

    "name":"小明",

    "score":{

      "Math":100,

      "Chinese”:90

    }

   }

  • 通过 . 点号 获得内嵌文档的属性值
  1. //查询数学分数大于80的
  2. $condition = [
  3. 'score.math' => ['$gt' => 80]
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);

5. 正则过滤

使用正则表达式进行过滤

  1. //查询名字以“小”开头的
  2. $condition = [
  3. 'name' => new MongoRegex('/^小/')
  4. ];
  5. $result = $collection -> find($condition,['_id'=>false]);

6. 排序

注:需要先查询,再对查询的结果进行排序

通过查询结果(cursor游标)的sort方法进行排序,排序有2种方式:

    • 1  正序
    • -1  倒序
  1. //查询结果
  2. $cursor = $collection -> find([],['_id'=>false]);
  3. //对查询结果倒序排序
  4. $result = $cursor -> sort(['score.math'=>-1]);
  5. foreach($result as $key => $value){
  6. echo ($value['name'].':'.$value['score']['math']).'<br/>';
  7. }

7. 限定数量

对查询的结果进行限定,该方法属于cursor游标的

    • skip()  忽略多少
    • limit()  保留多少
  1. //查询结果
  2. $cursor = $collection -> find([],['_id'=>false]);
  3. //对查询结果倒序排序,忽略前三个,保留后两个
  4. $result = $cursor
  5. -> sort(['score.math'=>-1])
  6. -> skip(3)
  7. -> limit(2);
  8. foreach($result as $key => $value){
  9. echo ($value['name'].':'.$value['score']['math']).'<br/>';
  10. }

MongoDB查找条件的更多相关文章

  1. [转]mongodb 查询条件:关系运算符"$lt", "$lte", "$gt", "$gte", "$ne" 逻辑运算符"$and“, "$or“, "$nor“

    mongodb 查询条件   这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte" ...

  2. MongoDB $type条件操作符

    描述 在本章节中,我们将继续讨论MongoDB中条件操作符 $type. $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 ...

  3. Informatica 常用组件Lookup之七 查找条件

    PowerCenter 使用查找条件来测试收到的值.这与 SQL 查询中的 WHERE 子句相似.为转换配置查找条件时,将对转换输入值和查找源或高速缓存(用查找端口代表)中的值进行比较.当您运行工作流 ...

  4. mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件

    查询表中学生年级大于20,如下: db.getCollection('student').find({'age':{'$gt':'20'}}) $lt    <   (less  than ) ...

  5. 深入理解mongodb查询条件语句

    阅读目录 1. 理解:"$lt"."$lte"."$gt" 和 "$gte" 2. 理解 '$ne' 3. 理解 &qu ...

  6. golang mongodb查找find demo

    使用gopkg.in/mgo.v2库操作,插入操作主要使用mongodb中Collection对象的Find方法,函数原型: func (c *Collection) Find(query inter ...

  7. MongoDB 多条件组合查询

    组合条件查询json格式语法 { "$and": [ { "Date": { $gt: ISODate("2015-06-05T00:45:00.00 ...

  8. mongodb 查询条件

    这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte", "$ne&qu ...

  9. MongoDB查询条件常用设置

    原文地址:http://blog.csdn.net/mcpang/article/details/8731065 Java操作mongodb进行查询,常用筛选条件的设置如下: 条件列表: BasicD ...

随机推荐

  1. MOTT介绍(2)window安装MQTT服务器和client

    MQTT目录: MQTT简单介绍 window安装MQTT服务器和client java模拟MQTT的发布,订阅 window安装MQTT服务器,我这里下载了一个apache-apollo-1.7.1 ...

  2. python实现字符串中的半全角转换

    全角和半角的空格的Unicode值相差12256 除空格外的全角和半角的Unicode值相差65248 # -*- coding: utf-8 -*- def strQ2B(ustring): &qu ...

  3. Android Authenticator使用(转)

    出处:http://blog.udinic.com/2013/04/24/write-your-own-android-authenticator/ 这篇文章个人觉得讲的非常好,比官方文档还要清晰,将 ...

  4. sql server单个字段列转行由,隔开

    SELECT STUFF((SELECT ','+字段名 FROM 表名 for xml path('')),1,1,'')

  5. [CENTOS7] 加入Windows域

    This following article is a snapshot from: https://www.rootusers.com/how-to-join-centos-linux-to-an- ...

  6. inclusion_tag 界面的嵌套 和渲染

    后端的html渲染到前端: 如果后端直接定义的是html标签,传到前端的时候因为浏览器的安全机制就会直接渲染成字符串如果想要渲染成需要的标签,就需要在后端用make_save()进行包裹,或者直接在前 ...

  7. PHP_CodeSniffer 使用攻略

    安装 PHP_CodeSniffer 安装 phpcs phpcs 是 PHP 代码规范的检测工具. # 下载 $ curl -OL https://squizlabs.github.io/PHP_C ...

  8. PHP SFTP应用(二)

    SFTP应用(二) SFTP Server SSH2 sftp操作 FTP进行文件传输需要通过端口进行.一般所需端口为: 控制链路—TCP端口21.控制器端.用于发送指令给服务器以及等待服务器响应. ...

  9. UE4的csv文件导入、URL地址的读取及动态材质的设置

    1.csv文件的导入 UE4是可以直接导入csv文件的,其过程和其他文件资源(图片Texture,静态网格物体StaticMesh等)相似,但在导入过程中有一些需要注意的点. 如下图所示 这是一份编辑 ...

  10. mysql 数据库数据迁移 The user specified as a definer ('root'@'%') does not exist 解决方法

    从一个数据库数据迁移到本地localhost 程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a defi ...