Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Ruby中使用Regexp.new()在DB中搜索整数值?_Javascript_Ruby_Mongodb_Autocomplete - Fatal编程技术网

Javascript 如何在Ruby中使用Regexp.new()在DB中搜索整数值?

Javascript 如何在Ruby中使用Regexp.new()在DB中搜索整数值?,javascript,ruby,mongodb,autocomplete,Javascript,Ruby,Mongodb,Autocomplete,我的控制器中有一些代码,用作数据库(mongo)中的搜索: job\u编号作为整数值存储在数据库中,不幸的是无法更改: key :job_number, Integer 当我直接在mongo中运行查询时,它返回: > db.jobs.find( { job_number: 2013058 } ) { "_id" : ObjectId("519555d789651a5443000346"), "job_number" : 2013058, "type" : "5191027089651

我的控制器中有一些代码,用作数据库(mongo)中的搜索:

job\u编号
作为整数值存储在数据库中,不幸的是无法更改:

  key :job_number, Integer
当我直接在mongo中运行查询时,它返回:

> db.jobs.find( { job_number: 2013058 } )
{ "_id" : ObjectId("519555d789651a5443000346"), "job_number" : 2013058, "type" : "5191027089651a5adb000093", "priority" : "5191027b89651a5d38000001", "start_time" : "08:00", "end_time" : "10:00" }
但是,搜索不会返回任何结果:

MONGODB (0.5ms) DATABASE['jobs'].find({:merchant_id=>"518b762e89651a0389000013", :$or=>[{:job_number=>/2013058/x}, {:type=>/^2013058/i}, {:status=>/^2013058/i}]})

job_results: Array[0]

如果我搜索一个工作类型(字符串,一个单词),它可以正常工作。我尝试将密钥转换为整数,Ruby对此并不抱怨。我还尝试了
key.to\u.to\u I
。在使用作业编号进行搜索时,如何让作业返回?

根据nyde1319对我的问题的评论,试图正则化一个整数是没有好处的。我最终放弃了,把它转换成了字符串。这适用于搜索

我想给nyde1319一个+1,但这不是一个答案,只是一个评论

重述-不要尝试对整数值使用Regex.new()。使用字符串。如果您需要对这些值执行数学运算,并且希望使用autocomplete with Regex进行匹配,那么最好将字符串转换为整数进行数学运算(.to_i)


或者放弃搜索。我无法使其工作。

在整数字段上使用正则表达式可能不会如中所述真正工作。根据这个问题,在非字符串字段上使用正则表达式“速度非常慢,而且有点误导性。”需要像这样指定商户id
BSON::ObjectId.from_string(“518b762e89651a0389000013”)
MONGODB (0.5ms) DATABASE['jobs'].find({:merchant_id=>"518b762e89651a0389000013", :$or=>[{:job_number=>/2013058/x}, {:type=>/^2013058/i}, {:status=>/^2013058/i}]})

job_results: Array[0]