MongoDB 条件操作符

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 10月更文挑战第15天

描述

条件操作符用于比较两个表达式并从 mongoDB 集合中获取数据。

在本章节中,我们将讨论如何在 MongoDB 中使用条件操作符。

这些操作符可以分为以下几类:比较操作符、逻辑操作符、元素操作符、数组操作符、以及其他常用操作符。

比较操作符

比较操作符有:

操作符 描述 示例
$eq 等于 { age: { $eq: 25 } }
$ne 不等于 { age: { $ne: 25 } }
$gt 大于 { age: { $gt: 25 } }
$gte 大于等于 { age: { $gte: 25 } }
$lt 小于 { age: { $lt: 25 } }
$lte 小于等于 { age: { $lte: 25 } }
$in 在指定的数组中 { age: { $in: [25, 30, 35] } }
$nin 不在指定的数组中 { age: { $nin: [25, 30, 35] } }

查找年龄大于 25 且城市为 "New York" 的文档:

db.myCollection.find({ age: { $gt: 25 }, city: "New York" });

逻辑操作符

逻辑操作符有:

操作符 描述 示例
$and 逻辑与,符合所有条件 { $and: [ { age: { $gt: 25 } }, { city: "New York" } ] }
$or 逻辑或,符合任意条件 { $or: [ { age: { $lt: 25 } }, { city: "New York" } ] }
$not 取反,不符合条件 { age: { $not: { $gt: 25 } } }
$nor 逻辑与非,均不符合条件 { $nor: [ { age: { $gt: 25 } }, { city: "New York" } ] }

查找年龄大于 25 或城市为 "New York" 的文档:

db.myCollection.find({ $or: [ { age: { $gt: 25 } }, { city: "New York" } ] });

元素操作符

元素操作符有:

操作符 描述 示例
$exists 字段是否存在 { age: { $exists: true } }
$type 字段的 BSON 类型 { age: { $type: "int" } }

查找包含 age 字段的文档:

db.myCollection.find({ age: { $exists: true } });

数组操作符

数组操作符有:

操作符 描述 示例
$all 数组包含所有指定的元素 { tags: { $all: ["red", "blue"] } }
$elemMatch 数组中的元素匹配指定条件 { results: { $elemMatch: { score: { $gt: 80, $lt: 85 } } } }
$size 数组的长度等于指定值 { tags: { $size: 3 } }

查找数组 tags 中包含 "red" 和 "blue" 的文档:

db.myCollection.find({ tags: { $all: ["red", "blue"] } });

其他操作符

还有一些其他操作符如下:

操作符 描述 示例
$regex 匹配正则表达式 { name: { $regex: /^A/ } }
$text 进行文本搜索 { $text: { $search: "coffee" } }
$where 使用 JavaScript 表达式进行条件过滤 { $where: "this.age > 25" }

查找名字以 "A" 开头的文档:

db.myCollection.find({ name: { $regex: /^A/ } });

实例

查找年龄大于 25 且城市为 "New York",名字以 "A" 开头的文档:

实例

db.myCollection.find({

   $and: [

       { age: { $gt: 25 } },

       { city: "New York" },

       { name: { $regex: /^A/ } }

   ]

});

目录
相关文章
|
NoSQL 数据挖掘 MongoDB
深入了解MongoDB:利用$type操作符轻松操控数据类型
深入了解MongoDB:利用$type操作符轻松操控数据类型
162 0
|
NoSQL Java MongoDB
MongoDB $type 操作符
10月更文挑战第16天
145 2
|
NoSQL BI MongoDB
深入理解 MongoDB 条件操作符:优化查询、精准筛选、提升性能
深入理解 MongoDB 条件操作符:优化查询、精准筛选、提升性能
292 1
|
存储 NoSQL MongoDB
MongoDB-数据类型转换操作符
?> MongoDB 对于文档的格式并没有强制性的要求, 同一个集合中存储的文档, 字段的个数和数据类型都可以不同, 对与文档的格式没有强制性的要求是 MongoDB 的一大优势, 但是同时也增加了数据消费端的使用难度, 因为我们在使用数据的时候, 有可能同一个字段取出来的数据类型是不同的, 这样非常不利于我们后续操作, 所以也正是因为如此, MongoDB 在 4.0 中 推出了 $convert 数据类型转换操作符, 通过 $convert 数据类型转换操作符, 我们可以将不同的数据类型转换成相同的数据类型, 以便于后续我们在使用数据的过程中能够统一对数据进行处理
248 0
|
NoSQL Java MongoDB
MongoDB 条件操作符
MongoDB 条件操作符
171 0
|
NoSQL 数据库 MongoDB
【mongoDB查询进阶】聚合管道(二) -- 阶段操作符
https://segmentfault.com/a/1190000010826809 什么是管道操作符(Aggregation Pipeline Operators) mongoDB有4类操作符用于文档的操作,例如find查询里面会用到的$gte,$in等。
1438 0
|
NoSQL 机器学习/深度学习 存储
【mongoDB查询进阶】聚合管道(三)--表达式操作符
https://segmentfault.com/a/1190000010910985 管道操作符的分类 管道操作符可以分为三类: 阶段操作符(Stage Operators) 表达式操作符(Expression Operators)--主要用于$project 累加器(Accumulators)...
1235 0
|
SQL JavaScript NoSQL
《MongoDB管理与开发精要》——3.1节查询操作符
本节书摘来自华章社区《MongoDB管理与开发精要》一书中的第3章,第3.1节查询操作符,作者:红 丸,更多章节内容可以访问云栖社区“华章社区”公众号查看
908 0
|
NoSQL Redis MongoDB
[MongoDB]条件操作符
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/52318394 MongoDB支持大量的条件操作符用于过滤结果。
862 0

推荐镜像

更多
下一篇
开通oss服务