gpt4 book ai didi

java - 无法匹配 Mongodb 中的模式搜索

转载 作者:行者123 更新时间:2023-12-02 11:55:28 26 4
gpt4 key购买 nike

如何使用正则表达式匹配 MongoDB 中给定的输入值,因为传递的值大于数据库中的值。有什么建议吗?谢谢。

Value in DB - 123456 Input Search Value - 1234560000

我尝试过下面的查询,但它没有返回任何结果。

db.getCollection('STUDENT').find(
{ Studentid:{$regex : '1234560000'}});

仅供引用 -> Studentid 是字符串字段。

最佳答案

听起来,您必须知道 inputValue 的字符数可以多于文档 ID 的字符数(因为我们正在谈论字符串)。

如果您知道您的输入可能是您想要的 ID,后跟“n”个零(根据您的示例),那么您的正则表达式将看起来更像:

inputValue = inputValue.replace("0", "");
db.getCollection('STUDENT').find( { Studentid:{$regex : inputValue + '[0]*'}});

我真正的建议是使用数字作为 ID(无论是 intlong ,这样你就可以这样做 db.getCollection('STUDENT').find(eq("Sudentid", <inputValue>));

或者如果您正在寻找多名学生

db.getCollection('STUDENT').find(gte("Sudentid", <inputValue>));

返回所有带有 Studentid 的文档大于或等于输入值。

免责声明:我不确定您使用的是哪个版本的 Mongo 驱动程序,但以下是我使用的文档以及我的答案所基于的内容:Mongo Driver Docs

关于java - 无法匹配 Mongodb 中的模式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47636790/

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