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/ } }

   ]

});

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
NoSQL Java MongoDB
MongoDB $type 操作符
10月更文挑战第16天
17 2
|
5月前
|
NoSQL 数据挖掘 MongoDB
深入了解MongoDB:利用$type操作符轻松操控数据类型
深入了解MongoDB:利用$type操作符轻松操控数据类型
|
5月前
|
NoSQL BI MongoDB
深入理解 MongoDB 条件操作符:优化查询、精准筛选、提升性能
深入理解 MongoDB 条件操作符:优化查询、精准筛选、提升性能
128 1
|
存储 NoSQL MongoDB
MongoDB-数据类型转换操作符
?> MongoDB 对于文档的格式并没有强制性的要求, 同一个集合中存储的文档, 字段的个数和数据类型都可以不同, 对与文档的格式没有强制性的要求是 MongoDB 的一大优势, 但是同时也增加了数据消费端的使用难度, 因为我们在使用数据的时候, 有可能同一个字段取出来的数据类型是不同的, 这样非常不利于我们后续操作, 所以也正是因为如此, MongoDB 在 4.0 中 推出了 $convert 数据类型转换操作符, 通过 $convert 数据类型转换操作符, 我们可以将不同的数据类型转换成相同的数据类型, 以便于后续我们在使用数据的过程中能够统一对数据进行处理
161 0
|
NoSQL Java MongoDB
MongoDB 条件操作符
MongoDB 条件操作符
103 0
|
NoSQL 数据库 MongoDB
【mongoDB查询进阶】聚合管道(二) -- 阶段操作符
https://segmentfault.com/a/1190000010826809 什么是管道操作符(Aggregation Pipeline Operators) mongoDB有4类操作符用于文档的操作,例如find查询里面会用到的$gte,$in等。
1307 0
|
NoSQL 机器学习/深度学习 存储
【mongoDB查询进阶】聚合管道(三)--表达式操作符
https://segmentfault.com/a/1190000010910985 管道操作符的分类 管道操作符可以分为三类: 阶段操作符(Stage Operators) 表达式操作符(Expression Operators)--主要用于$project 累加器(Accumulators)...
1158 0
|
SQL JavaScript NoSQL
《MongoDB管理与开发精要》——3.1节查询操作符
本节书摘来自华章社区《MongoDB管理与开发精要》一书中的第3章,第3.1节查询操作符,作者:红 丸,更多章节内容可以访问云栖社区“华章社区”公众号查看
860 0
|
NoSQL Redis MongoDB
[MongoDB]条件操作符
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/52318394 MongoDB支持大量的条件操作符用于过滤结果。
814 0
下一篇
无影云桌面