文档

关于 SequoiaDB

快速入门

快速入门之一键清理

安装

基本操作

数据模型

SQL引擎

FileSystem引擎

S3引擎

系统架构

数据库管理

连接器

驱动

参考手册

SequoiaDB Shell方法

操作符

SQL语法

SQL to SequoiaDB 映射表

限制

错误码

故障排除

SAC 管控中心

Web服务

版本信息

$and

语法

{ $and: [ { <表达式1> },{ <表达式2> }, ... ] }

描述

$and 是一个逻辑“与”操作。它的作用是选择满足所有表达式“[ <表达式1>, <表达式2>, ... ]”的记录,但是如果第一个表达式“<表达式1>”的计算结果为 false,SequoiaDB 将不会再执行后面的表达式。

示例

在集合 foo.bar 插入2条记录:

> db.foo.bar.insert( { "id": 100, "time": { "$date": "2012-10-01" }, "income": 10000, "expenses": 500 } )
> db.foo.bar.insert( { "id": 200, "time": { "$date": "2012-10-01" }, "income": 9000, "expenses": 1000 } )

SequoiaDB shell 运行如下:

  • 查询“time”字段值大于或等于2010年1月1日,并且“income”字段值等于10000的记录

    > db.foo.bar.find( { "$and": [ { "time": { "$gte": { "$date": "2010-01-01" } } }, { "income": 10000 } ] } )
    {
      "_id": {
        "$oid": "5821afc52b4c38286d000003"
      },
      "id": 100,
      "time": {
        "$date": "2012-10-01"
      },
      "income": 10000,
      "expenses": 500
    }
    Return 1 row(s).

    Note:
    如果缺省逻辑符,默认是 $and 关系,查询结果跟使用 $and 的一致

    > db.foo.bar.find( { "time": { "$gte": { "$date": "2010-01-01" } }, "income": 10000 } )
    {
      "_id": {
        "$oid": "5821afc52b4c38286d000003"
      },
      "id": 100,
      "time": {
        "$date": "2012-10-01"
      },
      "income": 10000,
      "expenses": 500
    }
    Return 1 row(s).
  • 查询字段“income”值大于0,并且小于10000的记录:

    当一个字段名有多个匹配条件时,可以用 $and 表达式,也可以合并表达式。

    > db.foo.bar.find( { "$and": [ { "income": { "$gt": 0 } }, { "income": { "$lt": 10000 } } ] } )
    {
      "_id": {
        "$oid": "5821afcd2b4c38286d000004"
      },
      "id": 200,
      "time": {
        "$date": "2013-05-01"
      },
      "income": 9000,
      "expenses": 1000
    }
    Return 1 row(s).

    或者

    > db.foo.bar.find( { "income": { "$gt": 0, "$lt": 10000 } } )
    {
      "_id": {
        "$oid": "5821afcd2b4c38286d000004"
      },
      "id": 200,
      "time": {
        "$date": "2013-05-01"
      },
      "income": 9000,
      "expenses": 1000
    }
    Return 1 row(s).
回到顶部