是否可以使用 find() 搜索以最后一位数字结尾的条形码 365478 我不在乎前面是什么
我想到了这样的事情。
$db.find(array('barcode'=>*365478))
但这似乎不起作用。我错过了什么吗?
的正则表达式/365478$/
将提供正确的过滤器。
正则表达式将起作用,但您将无法使用索引进行查询。我建议将最后 6 位数字存储在一个单独的字段中,在其上放置一个索引并使用它。
这很好用/$365478/当然你可以使用正则表达式,但保持简单是有回报的。
您可以为此使用正则表达式,但如果您希望能够使用索引,则必须存储反转的条形码(只有根正则表达式可以使用索引,请参阅http://www.mongodb.org/display/DOCS/Advanced +查询#AdvancedQueries-RegularExpressions )
如果这对您来说不切实际,您将不得不单独保存最后 X 位数字并进行精确匹配。如果您的数据库将相对较小,您可能无需索引就可以逃脱。
正则表达式应该是这样的:365478$
例如使用 PHP。
$regex = new MongoDB\BSON\Regex ( '365478$');