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

モンゴ固有のインデックスの大文字と小文字を区別しない

    MongoDBバージョン3.4より前 インデックスを作成できませんでした 大文字と小文字を区別しない

    バージョン3.4では、 collat​​ionがあります ユーザーが言語固有のルールを指定できるオプション 文字列比較の場合 、大文字と小文字の規則やアクセント記号など。

    照合オプションの構文は次のとおりです。

    collation: {
       locale: <string>,
       caseLevel: <boolean>,
       caseFirst: <string>,
       strength: <int>,
       numericOrdering: <boolean>,
       alternate: <string>,
       maxVariable: <string>,
       backwards: <boolean>
    }
    

    ここでロケール フィールドは必須です;他のすべてのフィールドはオプションです 。

    大文字と小文字を区別しないインデックスを作成するには、必須フィールド localeを使用する必要があります および強度 文字列比較レベルのフィールド。 強さ 価値の怒りを許容する1-5 。照合についてもっと読む

    強度属性は、テキストを照合または照合するときにアクセントまたは大文字小文字を考慮するかどうかを決定します

    例:

    強度=1の場合 次に、 role =Role=rôle

    強度=2の場合 次に役割=役割<ロール

    強度=3の場合 次に役割<役割<ロール

    比較レベルのドキュメント

    したがって、 strongth =2を使用する必要があります インデックスを作成します。のように:

    db.collectionName.createIndex(
      { name: 1, formula: 1, type: 1 },
      { 
        name: "fertilizer_idx",
        collation: {locale: "en", strength: 2},
        unique: true
      }
    )
    

    N.B collat​​ion テキストではオプションを使用できません インデックス。



    1. 他のデータベース管理ツールにはない9つのClusterControl機能

    2. Luaで32ビットビット演算を使用して符号付き64ビット数を比較する

    3. redis-ハッシュの使用

    4. Redisキャッシュに有効期限を追加する