PyMongoは、mongoシェルがネイティブのjavascript正規表現を使用するのと同じように、ネイティブのpython正規表現を使用します。上記のシェルで記述したものと同等のクエリを記述するには、次を使用します。
db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})
これにより、name
に存在する可能性のあるインデックスの使用が回避されることに注意してください。 ただし、フィールド。大文字と小文字を区別しない検索または並べ替えの一般的なパターンは、ドキュメントに2番目のフィールド(たとえば、name_lower
)を含めることです。 、name
は常に設定されます 変更(小文字バージョンのname
、 この場合)。次に、次のようなドキュメントをクエリします。
db.stuff.find_one({'name_lower': username.lower()})