0

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

我想到了这样的事情。

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

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

4

5 回答 5

4

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

于 2012-06-21T02:10:12.160 回答
3

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

于 2012-06-21T02:16:32.450 回答
1

这很好用/$365478/当然你可以使用正则表达式,但保持简单是有回报的。

于 2016-08-24T09:37:59.713 回答
0

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

如果这对您来说不切实际,您将不得不单独保存最后 X 位数字并进行精确匹配。如果您的数据库将相对较小,您可能无需索引就可以逃脱。

于 2012-06-21T09:03:33.460 回答
0

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

例如使用 PHP。

$regex = new MongoDB\BSON\Regex ( '365478$');
于 2016-09-27T20:39:48.937 回答