Mlab 包含查询
Mlab Contains Query
是否可以在 mLab 中使用 like/contains 查询?
我在服务器 https://mlab.com/:
上有这样的 json 数据
"County": "Kildare, Laois, Carlow"
我可以查询数据集 return all where trails = County Kildare:
@GET("databases/walks/collections/walks")
Call<List<Trail>> byCounty (@Query("q") String county,@Query("apiKey") String apiKey);
参数"q"包含:q={"County": "Kildare"}
但只有 select 符合以下条件的数据:
"County": "Kildare"
是否有与MongoDB中的Contains或SQL中的Like具有相同功能的Mlab查询。所以我可以搜索包含 "Kildare".
的县字段
甚至如何在 HTTP 请求中执行此操作,我也许可以在 q={ }
中使用它。
我试过使用 q={"County":"/.*Kildare.*/"}
谢谢。
mLab 数据 API 中的 q
参数只是一个 MongoDB 查询文档。您可以像在 MongoDB 查询文档中一样使用任何 MongoDB operator。
MongoDB 没有 $contains
运算符。但是,如果您要搜索字符串中的文本,则可以使用 $regex
或 $text
运算符。请参阅 documentation for $regex
and the documentation for $text
以了解更多信息。
要使用 $regex
,试试这个作为 q
参数:
q={"County": {"$regex": "Kildare"}}
要使用$text
,首先要在County 字段上建立一个文本索引。您可以在 mLab 管理门户 (instructions in the documentation) 或 运行 mongo shell:
上执行此命令
db.walks.createIndex({ County: "text" })
然后您可以尝试将此作为 q
参数:
q={"$text": {"$search": "Kildare"}}
重要说明: $regex
和 $text
可能是极其低效的操作。重构数据模型可能更有效、更容易。与其将县列表放在字符串中,不如将它们放在数组中,如下所示:
"County": ["Kildare", "Laois", "Carlow"]
然后要搜索县数组中包含 Kildare 的所有文档,您可以简单地使用此查询:
q={"County": "Kildare"}
与使用 $regex
或 $text
相比,这对您来说可能是更好的选择。
是否可以在 mLab 中使用 like/contains 查询? 我在服务器 https://mlab.com/:
上有这样的 json 数据"County": "Kildare, Laois, Carlow"
我可以查询数据集 return all where trails = County Kildare:
@GET("databases/walks/collections/walks")
Call<List<Trail>> byCounty (@Query("q") String county,@Query("apiKey") String apiKey);
参数"q"包含:q={"County": "Kildare"}
但只有 select 符合以下条件的数据:
"County": "Kildare"
是否有与MongoDB中的Contains或SQL中的Like具有相同功能的Mlab查询。所以我可以搜索包含 "Kildare".
的县字段甚至如何在 HTTP 请求中执行此操作,我也许可以在 q={ }
中使用它。
我试过使用 q={"County":"/.*Kildare.*/"}
谢谢。
mLab 数据 API 中的 q
参数只是一个 MongoDB 查询文档。您可以像在 MongoDB 查询文档中一样使用任何 MongoDB operator。
MongoDB 没有 $contains
运算符。但是,如果您要搜索字符串中的文本,则可以使用 $regex
或 $text
运算符。请参阅 documentation for $regex
and the documentation for $text
以了解更多信息。
要使用 $regex
,试试这个作为 q
参数:
q={"County": {"$regex": "Kildare"}}
要使用$text
,首先要在County 字段上建立一个文本索引。您可以在 mLab 管理门户 (instructions in the documentation) 或 运行 mongo shell:
db.walks.createIndex({ County: "text" })
然后您可以尝试将此作为 q
参数:
q={"$text": {"$search": "Kildare"}}
重要说明: $regex
和 $text
可能是极其低效的操作。重构数据模型可能更有效、更容易。与其将县列表放在字符串中,不如将它们放在数组中,如下所示:
"County": ["Kildare", "Laois", "Carlow"]
然后要搜索县数组中包含 Kildare 的所有文档,您可以简单地使用此查询:
q={"County": "Kildare"}
与使用 $regex
或 $text
相比,这对您来说可能是更好的选择。