2016-08-10 7 views
1

=入力された名前が空白の場合でも、クエリが最初の文書を返します{ name : { $regex : inputName, $options: 'i' } }完全一致検索、ちょうどのみ大文字小文字を区別しない

。 入力がaであっても、クエリは名前のどこにでもaを持つ最初のドキュメントを返します。

入力名が "jo"の場合は、名前が "Jo"、 "JO"、 "jO"、 "jo"のいずれかの最初の文書のみを返す必要があります。

私は動的正規表現を構築するためにJS RegExpコンストラクタを使用して、変数

+0

@WiktorStribiżewこれは動作しません。 – codeofnode

+0

ええ、私は二重チェックの後に私の答えを更新しました。 –

+0

@WiktorStribiżew私の前のコメントには申し訳ありませんが、私は構文エラーで確認しました。今あなたの答えはうまくいく。 – codeofnode

答えて

1

としてinputNameを受け取る覚えてください:

new RegExp("^" + inputName + "$", "i") 

i修飾子は大文字小文字を区別しないマッチングを提供し、^/$アンカーは確認します完全な文字列の一致が要求されます。

+0

Mongoの '$ regex'は' A'フラグを使用できないと思ってはいけません:https://docs.mongodb.com/manual/reference/operator/query/regex/ –

+0

@NickBull:あなたはあなたが思っているか試してみました。うまくいかない?あなたが気づいたことを確信していない - 私はまた、私の答えでそのリンクを参照してください。 –

+0

私はMongoドキュメントに受け入れられるすべてのフラグを追加することを信頼しています... –

関連する問題