sql >> データベース >  >> NoSQL >> MongoDB

c#mongodb大文字と小文字を区別する検索

    Mongodbの文字列フィールドでのフィルタリングでは、正規表現を使用せずに大文字と小文字を区別します。なぜ正規表現を使用できないのですか?

    クエリは次のように編集できます:

    var filter = Builders<ME_User>.Filter.And(
    Builders<ME_User>.Filter.Regex(u => u.Email, new BsonRegularExpression("/^" + email + "$/i"), 
    Builders<ME_User>.Filter.Eq(u => u.Password, password));
    

    完全な単語検索を指定するための「^」および「$」記号と、正規表現の最後にある大文字と小文字を区別しない演算子( "/ i")に注意してください。

    もう1つの方法は、テキストインデックスの作成が必要で、ラテンアルファベットの大文字と小文字を区別しないテキスト検索です。 http://docs.mongodb.org/manual/reference/operator/query/text/#match-operation

    C#では、テキストフィルターで使用します:

    var filter = Builders<ME_User>.Filter.And(
    Builders<ME_User>.Filter.Text(email), 
    Builders<ME_User>.Filter.Eq(u => u.Password, password));
    

    OR句にテキストインデックスクエリを使用する場合は、[パスワード]フィールドにもインデックスを作成する必要があります。そうしないと、ORクエリでエラーが発生します。



    1. 解凍して一致させた後、アレイをグループ化します

    2. 座標と最大距離を指定して特定のポイントに最も近いポイントを見つける-MEANスタックでMongooseを使用してクエリ結果が未定義

    3. 読み取りが多いアプリケーションでdbrefまたは埋め込みドキュメントを使用する必要があります

    4. パフォーマンス向上のためのMapReduceのパフォーマンスチューニング