0

文字列の代わりに数値で正規表現を使用することは可能ですか?

例: mongodb に、数値 1234567 を含むフィールドがあります (並べ替えなどの目的で文字列として保存されていません)。ここで、正規表現を使用して、この数値の一部、つまり 456 を見つけたいと思います。

文字列を含むデータベース フィールドでは、"1234567"これは簡単ですre.compile("456")。データベース クエリに渡すだけです。ただしre.compile(456)、次のようになります。

TypeError: first argument must be string or compiled pattern

これを達成する方法に関するヒントはありますか?数値を文字列として保存することは、他の多くの可能性 (gt/lt、並べ替えなど) を失うため、実際にはオプションではありません。

更新: また、正規表現を db-query に直接渡して結果をフィルタリングしているため、個々のフィールドを取得して、その内容を文字列に変換してから正規表現を使用することはできません。

4

3 に答える 3

2

str組み込み関数を使用して数値を文字列に変換できます。

str(456)
于 2013-09-01T10:14:06.400 に答える
1

重複としてマーク:整数値での MongoDB 正規表現検索

db.test.find({ $where: "/^123.*/.test(this.example)" })
{ "_id" : ObjectId("4bfc3187fec861325f34b132"), "example" : 1234 }
于 2013-09-01T13:02:24.237 に答える