Java 无法匹配Mongo DB中的模式搜索
如何使用正则表达式匹配MongoDB中的给定输入值,因为传递的值大于DB中的值。有什么建议吗?谢谢 DB中的值-123456输入搜索值-123456000 我尝试了下面的查询,但没有返回任何结果Java 无法匹配Mongo DB中的模式搜索,java,regex,spring,mongodb,mongodb-query,Java,Regex,Spring,Mongodb,Mongodb Query,如何使用正则表达式匹配MongoDB中的给定输入值,因为传递的值大于DB中的值。有什么建议吗?谢谢 DB中的值-123456输入搜索值-123456000 我尝试了下面的查询,但没有返回任何结果 db.getCollection('STUDENT').find( { Studentid:{$regex : '1234560000'}}); 仅供参考->Studentid是字符串字段。从它的发音来看,您必须知道inputValue可以比文档ID多个字符(因为我们说的是字
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(无论是int
还是long
,这样你就可以db.getCollection('STUDENT')。查找(eq(“Sudentid”);
或者如果你要找多个学生
db.getCollection('STUDENT').find(gte(“Sudentid”);
它返回Studentid
大于或等于inputValue的所有文档
免责声明:我不确定您使用的是哪个版本的Mongo驱动程序,但以下是我使用的文档以及我的答案:也尝试了此引用。但没有运气。此场景在大多数情况下都很好,除了2个学生ID 123450、1234500 in DB之外,我得到的输入值为1234500000,我想知道如果两个学生Id都被提取。如果零是唯一不同的东西,那么您应该仔细检查您的正则表达式。这里是一个很好的尝试地方: