find()を使用して、最後の数字で終わるバーコードを検索する方法はありますか365478前に何があるかは気にしません
こんな感じでした。
$db.find(array('barcode'=>*365478))
しかし、それはうまくいかないようです。私は何かが足りないのですか?
の正規表現は/365478$/
、適切なフィルターを提供します。
正規表現は機能しますが、クエリにインデックスを使用することはできません。最後の6桁を別のフィールドに格納し、それにインデックスを付けて使用することをお勧めします。
これはうまく機能します/$365478 /もちろん、正規表現を使用することはできますが、シンプルに保つことで成果が得られます。
これには正規表現を使用できますが、インデックスを使用できるようにするには、バーコードを逆にして保存する必要があります(ルート化された正規表現のみがインデックスを使用できます。http://www.mongodb.org/display/DOCS/Advancedを参照してください) + Queries#AdvancedQueries-RegularExpressions)
それが実用的でない場合は、最後のX桁を個別に保存し、完全に一致させる必要があります。データベースが比較的小さくなる場合は、インデックスを作成せずに回避できる可能性があります。
正規表現は次のようになります。365478$
たとえば、PHPを使用します。
$regex = new MongoDB\BSON\Regex ( '365478$');