gpt4 book ai didi

android - Mlab 包含查询

转载 作者:行者123 更新时间:2023-11-29 15:36:21 24 4
gpt4 key购买 nike

是否可以在 mLab 中使用 like/contains 查询?我在服务器上有这样的 json 数据 https://mlab.com/ :

"County": "Kildare, Laois, Carlow"

我可以查询数据集以返回所有 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"}

但这只会选择符合以下条件的数据:

"County": "Kildare"

有没有和MongoDB中的Contains或者SQL中的Like功能一样的Mlab查询。所以我可以搜索包含“Kildare”的县字段。

或者甚至如何在 HTTP 请求中执行此操作,我也许可以在 q={ } 中使用它.我试过使用 q={"County":"/.*Kildare.*/"}

谢谢。

最佳答案

mLab Data API中的q参数只是一个MongoDB查询文档。您可以使用任何 MongoDB operator就像您通常在 MongoDB 查询文档中一样。

MongoDB 没有$contains 运算符。但是,如果您要在字符串中搜索文本,则可以使用 $regex$text 运算符。查看documentation for $regexdocumentation 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 相比,这对您来说可能是更好的选择。

关于android - Mlab 包含查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49048625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com