文档中心
v3.4

SequoiaDB 简介

安装部署

数据库实例

分布式引擎

SAC 管控中心

参考手册

常见问题及解答(FAQ)

版本信息

匹配符

匹配符可以指定匹配条件,使查询仅返回符合条件的记录。同时支持搭配函数操作使用,实现更复杂的查询操作。

  • 单独使用匹配符,根据指定条件查询记录

    查询集合 sample.employee 中字段 age 取值大于 20 的记录

    > db.sample.employee.find({age: {$gt: 20}})
  • 搭配函数操作使用,先对字段值进行函数运算,再将运算结果作为匹配条件进行查询

    查询集合 sample.employee 中字段 a 绝对值为 2 的记录

    > db.sample.employee.find({a: {$abs: 1, $et: 2}})

所支持的匹配符如下:

匹配符 描述 示例
$gt 大于指定值 db.sample.employee.find({age: {$gt: 20}})
$gte 大于等于指定值 db.sample.employee.find({age: {$gte: 20}})
$lt 小于指定值 db.sample.employee.find({age: {$lt: 20}})
$lte 小于等于指定值 db.sample.employee.find({age: {$lte: 20}})
$ne 不等于指定值 db.sample.employee.find({age: {$ne: 20}})
$et 等于指定值 db.sample.employee.find({"id": {"$et": 1}})
$mod 取模后等于指定值 db.sample.employee.find({"age": {"$mod": [5, 3]}})
$and 使用逻辑“与”连接表达式并匹配记录 db.sample.employee.find({$and: [{age: 20}, {name: "Tom"}]})
$or 使用逻辑“或”连接表达式并匹配记录 db.sample.employee.find({$or: [{age: 20}, {name: "Tom"}]})
$not 使用逻辑“非”连接表达式并匹配记录 db.sample.employee.find({$not: [{age: 20}, {name: "Tom"}]})
$regex 匹配满足正则表达式的记录 db.sample.employee.find({str: {$regex: 'dh.*fj', $options:'i'}})
$elemMatch 匹配满足所有条件的记录 db.sample.employee.find({content: {$elemMatch: {name: "Jack", phone: "123"}}})
$exists 匹配存在指定字段的记录 db.sample.employee.find({age: {$exists: 1}})
$isnull 匹配存在指定字段且取值不为空的记录 db.sample.employee.find({age: {$isnull: 0}})
$in 匹配存在指定值的记录 db.sample.employee.find({age: {$in: [20, 21]}})
$nin 匹配不存在指定值的记录 db.sample.employee.find({age: {$nin: [20, 21]}})
$all 匹配存在所有指定值的记录 db.sample.employee.find({name: { $all: ["Tom", "Mike"]}})
$+标识符 数组元素匹配 db.sample.employee.find({"array.$2": 10})
$expand 数组展开成多条记录 db.sample.employee.find({a: {$expand: 1}})
$returnMatch 返回匹配的数组元素 db.sample.employee.find({a: {$returnMatch: 0, $in: [1, 4, 7]}})
回到顶部