[解決済み] Mongodbで大文字小文字を区別しないクエリを作成するには?
2022-05-16 23:13:37
質問
var thename = 'Andrew';
db.collection.find({'name':thename});
大文字・小文字を区別しない問い合わせをするには?andrew"でも結果を見つけたいのですが。
どのように解決するのですか?
Chris Fulstowの解決策はうまくいきますが(+1)、特にコレクションが非常に大きい場合は効率的ではないかもしれません。非ルート型正規表現 (先頭が
^
で始まらないもの)、および正規表現を文字列の先頭に固定するために
i
フラグを使うものは、たとえインデックスがあったとしても使いません。
別の選択肢として、データを非正規化し、小文字で書かれた
name
フィールドを小文字で保存することです。
name_lower
. そして、大文字小文字を区別しない完全一致を効率的に問い合わせることができます(特にインデックス化されている場合)。
db.collection.find({"name_lower": thename.toLowerCase()})
のように、プレフィックスマッチ(ルート型正規表現)でもいい。
db.collection.find( {"name_lower":
{ $regex: new RegExp("^" + thename.toLowerCase(), "i") } }
);
これらのクエリはどちらも
name_lower
.
関連
-
[解決済み] 正規表現でのコロン記号の使用
-
[解決済み] 正規表現におけるスラッシュのエスケープ
-
[解決済み] この正規表現に負の小数点を含めるにはどうしたらよいですか?
-
[解決済み] MongoDB: 大文字小文字を区別しないクエリを作ることはできますか?
-
[解決済み] regex オプションのワードマッチ
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] mongodbの最後のN個のレコードを取得する方法は?
-
[解決済み] MongoDBのリレーションシップ:埋め込みか参照か?
-
[解決済み】re.compileを使わずに大文字小文字を区別しない正規表現?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Scalaで正規表現を使ったパターンマッチを行うには?
-
[解決済み] bashスクリプトで「cd `echo $0 | sed 's/(.***)\/.*/**1/'` 」はどうするのですか?
-
[解決済み] GNU sed の lookahead 正規表現がおかしいのですが?
-
[解決済み] MongoDB: 大文字小文字を区別しないクエリを作ることはできますか?
-
[解決済み] Regex オプション文字にマッチさせる方法
-
[解決済み] RegEx: 引用符で囲まれた値を取得する
-
[解決済み] スペースとタブの任意のシーケンスにマッチする正規表現を作成する方法
-
[解決済み] 正規表現におけるワードバウンダリとは何ですか?
-
[解決済み] Regex - 特定の文字が含まれていません。
-
[解決済み] 米国通貨RegExの "ベスト "は何か?