类似于 MongoDB 中的 SQL LIKE 语句的查询
MongoDB 是一个强大的 NoSQL 数据库服务器。它使用带有可选模式的类 JSON 文档来存储数据。
对于开发人员来说,组织数据始终是一项必不可少的任务,因为它在应用程序的性能中起着最关键的作用。在 MongoDB 中,你可以使用类似于 SQL LIKE
语句的查询来获取数据。
在 MongoDB 中创建数据库
我们将在本教程中的示例中使用一些虚拟数据。你还可以创建数据库并执行下面给出的命令来插入虚拟数据。
db={
"colors": [
{
"id": 100,
"color": "Pink"
},
{
"id": 101,
"color": "Purple"
},
{
"id": 102,
"color": "Black"
},
{
"id": 103,
"color": "Blue"
}
]
}
MongoDB 中的 db.collection.find()
方法
在 MongoDB 集合中搜索时,最关键的部分是灵活而直接的 db.collection.find()
方法。
使用 db.collection.find(),
,你可以通过几个简单的参数传递文档集合并返回一个光标
,从而轻松查询文档集合。
游标
只是一个结果集。我们可以遍历它来操作或以其他方式使用光标
指向的文档。
db.collection.find()
方法的一个简单示例如下所示。
> db.colors.find()
输出:
上面的程序返回一个集合中的所有文档。但这对于生产要求来说是非常少见的。
你总是需要一些来自数据库的过滤结果。
例如,如果你想获取包含 color: Pink
的所有数据。执行下面的查询。
> db.colors.find({color: "Pink"})
输出:
使用 db.collection.find()
方法查询类似于 MongoDB 中的 SQL LIKE 语句
你可以使用正则表达式在 MongoDB 中搜索文档。这将类似于 SQL 查询中的 LIKE
语句。
现在你正在使用 .find()
来查询你的集合,你可以稍微改变你的语法并开始根据可能是特定字段中的部分匹配的单词或短语来查找匹配项,类似于 SQL 引擎的方式使用 LIKE
运算符。
该技巧利用正则表达式 (regex),即定义搜索模式的文本字符串。几个正则表达式引擎是用不同的语法编写的,但基本原理是相同的。
在最基本的层面上,正则表达式是两边用一个斜杠 (/
) 括起来的字符串。
db.collection.find({
"k": /pattern/
})
但目前,由于 shell 正则表达式在查询 mongoplayground.net
时不起作用,你可以使用下面给出的表达式。
db.collection.find({
"k": {
"$regex": "pattern"
}
})
例如,如果你想使用正则表达式执行与上例相同的查询并找出有多少文档包含颜色 Pink
,你可以将字符串 "Pink"
替换为 /Pink/
。
使用 db.collection.find()
方法在任何地方搜索匹配的字符串
第一条语句将搜索颜色名称在字符串中任何位置包含 Pink
的所有文档。第二条语句搜索颜色名称中包含 Bl
的所有记录。
此查询的 SQL 语句:
select * from colors where color LIKE "%Pink%"
此查询的 MongoDB 语句:
db.colors.find({
"color": {
"$regex": "Pink"
}
})
输出:
此查询的 MongoDB 语句:
db.colors.find({
"color": {
"$regex": "Bl"
}
})
输出:
使用正则表达式而不是标准的带引号的字符串,你可以开始查找部分单词或短语匹配。
使用带有^
的 db.collection.find()
方法来搜索匹配字符串的起始字符
这将匹配所有以字符 P
开头的字符串。例如,使用了胡萝卜^
符号。
此查询的 SQL 语句:
select * from colors where color LIKE "P%"
此查询的 MongoDB 语句:
db.colors.find({
"color": {
"$regex": "^P"
}
})
输出:
使用带有 $
的 db.collection.find()
方法来搜索匹配的字符串结束字符
美元 $
符号匹配以特定字符结尾的字符串。
下面的示例匹配所有以字符 k
结尾的字符串。
此查询的 SQL 语句:
select * from colors where color LIKE "%k"
此查询的 MongoDB 语句:
db.colors.find({
"color": {
"$regex": "k$"
}
})
输出:
使用 db.collection.find()
方法和 i
在任何情况下搜索匹配字符串
默认的 db.collection.find
方法搜索时区分大小写。但是,你可以使用下面使用的 i
选项指示 find
命令在任何情况下匹配字符。
此查询的 SQL 语句:
select * from colors where color LIKE BINARY "pink"
此查询的 MongoDB 语句:
db.colors.find({
"color": {
"$regex": "k$/i"
}
})
输出:
这篇 MongoDB 教程文章教你如何在 MongoDB 中搜索类似于 SQL LIKE
语句的数据库。
相关文章
比较 MongoDB 中的字段
发布时间:2023/04/21 浏览次数:51 分类:MongoDB
-
在本文中,我们将了解如何比较 MongoDB 中的两个字段。 此外,我们将看到一个相关的示例和解释,以使主题更容易理解。
清除或删除 MongoDB 中的集合
发布时间:2023/04/21 浏览次数:147 分类:MongoDB
-
本篇文章将告诉大家如何删除 MongoDB 数据库中的集合以及删除 MongoDB 中的集合的不同方法。
向 MongoDB 集合中的每个文档添加新字段
发布时间:2023/04/21 浏览次数:107 分类:MongoDB
-
您将在这篇文章中了解 $set 和 $setOnInsert 操作。 此外,利用这两个运算符,快速描述了向 MongoDB 中的集合添加字段的挑战。
MongoDB 截断集合
发布时间:2023/04/21 浏览次数:178 分类:MongoDB
-
可以根据需要选择两个选项之一来截断下面的集合。 在今天的文章中,我们将学习如何在 MongoDB 中截断集合。
删除 MongoDB 中的重复项
发布时间:2023/04/21 浏览次数:151 分类:MongoDB
-
在本文中,我们将了解如何删除 MongoDB 中的重复条目,并且我们还将看到一个带有适当解释的示例,以使主题更容易理解。
使用 NodeJS 检查 MongoDB 中是否存在集合
发布时间:2023/04/21 浏览次数:194 分类:MongoDB
-
在本文中,我们将检查 MongoDB 数据库中是否存在一个集合,并且我们还将查看与主题相关的示例,以使主题更容易理解。 为此,我们将使用 Node.js。
MongoDB 中的唯一索引
发布时间:2023/04/21 浏览次数:144 分类:MongoDB
-
在这篇教学文章中,您将了解唯一索引、它们是什么以及如何在 MongoDB 中使索引唯一。 此外,还简要详细地解释了使用户的电子邮件在 MongoDB 中唯一。
在 MongoDB 中创建索引
发布时间:2023/04/21 浏览次数:104 分类:MongoDB
-
索引有助于有效解决查询。 如果没有索引,MongoDB 必须遍历集合中的每个文档才能找到与查询匹配的文档。因此,在今天的文章中,我们将学习如何在 MongoDB 中创建索引。
MongoDB 中的稀疏索引
发布时间:2023/04/21 浏览次数:142 分类:MongoDB
-
在本文中,我们将讨论 MongoDB 中的稀疏索引。 此外,我们将提供一个相关示例并进行解释,以使该主题更容易理解。