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を参照してください) + Queries#AdvancedQueries-RegularExpressions

それが実用的でない場合は、最後のX桁を個別に保存し、完全に一致させる必要があります。データベースが比較的小さくなる場合は、インデックスを作成せずに回避できる可能性があります。

于 2012-06-21T09:03:33.460 に答える
0

正規表現は次のようになります。365478$

たとえば、PHPを使用します。

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