mongoDB搜索最后6位数

时间:2012-06-21 02:04:03

标签: search mongodb find

是否可以使用find()来搜索以最后一位数字结尾的条形码365478我不在乎前面的内容

我想到这样的事情。

$db.find(array('barcode'=>*365478))

但这似乎不起作用。我错过了什么吗?

4 个答案:

答案 0 :(得分:4)

/365478$/的正则表达式将提供正确的过滤器。

答案 1 :(得分:3)

正则表达式可以工作,但您将无法使用索引进行查询。我建议将最后6位数字存储在一个单独的字段中,在其上放一个索引并使用它。

答案 2 :(得分:0)

您可以使用正则表达式,但如果您希望能够使用索引,则必须反转存储条形码(只有root的正则表达式可以使用索引,请参阅http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions

如果这对您来说不实用,则必须单独保存最后X位数并进行精确匹配。如果您的数据库相对较小,您可以在没有索引的情况下离开。

答案 3 :(得分:0)

正则表达式应该是这样的:365478$

使用PHP作为例如。

$regex = new MongoDB\BSON\Regex ( '365478$');