2011-11-11 4 views
0

私は文字列として格納されたソート "1001,100"と "1001"の値を含むMongo DB列を持っています。 Javaのクラスを介して「100」を探している間、私は 文字列型の列の固定整数を検索するためのMongo正規表現ですか?

query.put(dbColumn, java.util.regex.Pattern.compile(object)); 

を使用している、それは100と1001は100が含まれているため検索のような物体が二つの値で100このクエリの結果である

は単に値を取得する方法はありますそれは正規表現を使用して文字列の一部として100だけを含む(結果は "1001,100"でなければならない)?

+0

私はあなたを正しく理解しているかどうかはわかりません。 1001 001100と100を含む文字列で100と100だけ一致させたいと思いますか? – FailedDev

+0

サブセットだけでなく、文字列全体を一致させようとしていますか?予想されるインプットとアウトプットのいくつかの例を提供することができれば、一般的に役立ちます。 – Dana

答えて

1

あなたのMongo DB列にはカンマ区切りの複数の値を含めることができます。たとえば、「1001,100」という文字列は1001と100の値の集合を表します。列内の特定の値(100など)を検索したいが、部分的な値ではなく完全な値のみ一致としてカウントされます。

正しく理解していれば、検索する値が部分的な値ではなく完全な値であることを宣言する必要があります。あなたは価値の開始時と終了時にワード境界を追加することによって、次の操作を行います。

\b100\b 

これは検索が唯一の完全な値に一致するようになります。この作品

理由は\bオペレータがワード境界と一致していることです。単語境界は、境界の片側に単語要素があり、反対側に単語要素がない入力の場所です。だから\b100\bは、100があなたのケースでは、コンマ、またはフィールドの始めや終わりの両方に非単語要素を持つ場合にのみ一致します。

関連する問題