如何使用regex匹配MongoDB中的给定输入值,因为传递的值大于DB中的值。有什么建议吗?感谢。
DB中的值 - 123456输入搜索值 - 1234560000
我已尝试过以下查询,但它没有返回任何结果。
db.getCollection('STUDENT').find(
{ Studentid:{$regex : '1234560000'}});
FYI-> Studentid是String字段。
答案 0 :(得分:1)
听起来,您必须知道inputValue可以是比文档ID更多的字符(因为我们在说字符串)。
如果您知道您的输入可能是您想要的ID,后跟'n'个零(基于您的示例),那么您的正则表达式看起来更像:
inputValue = inputValue.replace("0", "");
db.getCollection('STUDENT').find( { Studentid:{$regex : inputValue + '[0]*'}});
我的真实建议是使用ID编号(int
或long
,这样您就可以db.getCollection('STUDENT').find(eq("Sudentid", <inputValue>));
或者如果你正在寻找多个学生
db.getCollection('STUDENT').find(gte("Sudentid", <inputValue>));
返回Studentid
大于或等于inputValue的所有文档。
免责声明:我不确定您使用的是哪个版本的Mongo驱动程序,但以下是我使用的文档以及我的答案基于:Mongo Driver Docs < / p>