如何在MongoDB中使用SQL LIKE语句
MongoDB是一个功能强大的Nosql数据库服务器。MongoDB使用类似JSON的文档与可选的模式来存储数据。
它总是一个关键的任务,一个开发组织数据。因为它在应用程序的性能中起着最重要的作用。在Mongodb中,你可以使用类似SQL LIKE语句的查询来获取数据。
在本教程的例子中,我们使用了如下的一些虚拟数据。你也可以创建一个数据库,然后执行下面的命令来插入虚拟数据。
db.colors.insert({ "id": 100, "color": "Pink"})
db.colors.insert({ "id": 101, "color": "Purple"})
db.colors.insert({ "id": 102, "color": "Black"})
db.colors.insert({ "id": 103, "color": "Blue"})
一、使用.find()
Mongodb find()命令用于从一个集合中搜索文档。这个函数提供了灵活的搜索文档的选项,默认的find()函数可以检索一个集合中的所有文档。
默认的find()函数可以检索一个集合中的所有文档,也可以通过传递一些简单的参数来查询一个文档集合,并返回一个游标。它还允许你通过传递一些简单的参数来查询一个文档集合,并返回一个游标。
一个简单的.find()方法的例子如下。
> db.color.find()
{ "_id" : ObjectId("5f697e4ccc528930cde49f53"), "id" : 100, "color" : "Pink" }
{ "_id" : ObjectId("5f697e4fcc528930cde49f54"), "id" : 101, "color" : "Purple" }
{ "_id" : ObjectId("5f697e52cc528930cde49f55"), "id" : 102, "color" : "Black" }
{ "_id" : ObjectId("5f697e55cc528930cde49f56"), "id" : 103, "color" : "Blue" }
上面会返回一个集合中的所有文档。但这在生产需求上是很不常见的。你总是需要从数据库中获取一些过滤的结果。
例如,获取所有包含 "color: Pink "的文档。执行如下查询。
> db.cols.find({color: "Pink"})
二、将.find()作为SQL LIKE语句使用
你可以在monogdb中使用正则表达式来搜索文档。这将类似于SQL查询中的LIKE语句。
1、搜索字符串中任何地方有 "Pink "的颜色的所有文档。第二条语句搜索所有颜色名称中含有 "Bl "的文档。
### SQL Statement
select * from colors where color LIKE "%Pink%"
### Mongodb Statement
db.colors.find(color: "/Pink/")
2、搜索字符串开头 - 这将匹配所有以P字符开头的字符串。“^”符号用于表示“开始”。
### SQL Statement
select * from colors where color LIKE "P%"
### Mongodb Statement
db.colors.find(color: "/^P/")
3、搜索字符串结尾 - 美元"$"符号用于匹配带有特定字符的字符串结尾。下面的例子可以匹配所有以 "k "结尾的字符串。
### SQL Statement
select * from colors where color LIKE "%k"
### Mongodb Statement
db.colors.find(color: "/k$/")
4、在任何情况下搜索字符串 - 默认的查找方法是区分大小写的。您可以使用 "i "选项指示find命令在任何情况下匹配字符,如下例所示。
### SQL Statement
select * from colors where color LIKE BINARY "pink"
### Mongodb Statement
db.colors.find(color: "/pink/i")
在本教程中,你已经学会了在Mongodb中搜索类似SQL LIKE语句的数据库。A5互联https://www.a5idc.net/