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

Javaを使用してMongoDBでワイルドカード検索を実行する方法

    正規表現 を実行できます Mongoのフィールドで一致する場合、最初のパターンを実行する方法は次のとおりです。

    Pattern p = Pattern.compile("Mon.*DB", CASE_INSENSITIVE);
    BasicDBObject query = new BasicDBObject("name", p);
    
    // finds all records with "name" matching /Mon.*DB/i
    DBCursor cursor = collection.find(query);
    

    ただし、多くの正規表現の一致には全表スキャンが必要であることに注意してください。これは、大規模なコレクションに対してそれらを実行する場合、エンジンはすべてのドキュメント(おそらくディスクにヒットする)を反復処理し、それぞれが一致するかどうかを個別にチェックする必要があることを意味します。これは、インデックスを使用するクエリよりもはるかに低速です。

    インデックスにヒットする正規表現は、大文字と小文字を区別するプレフィックスの一致のみです。このようにすべての「Mon*」を検索して、インデックスを使用できます:

    Pattern p = Pattern.compile("^Mon.*");
    BasicDBObject query = new BasicDBObject("name", p);
    
    // finds all records with "name" matching /^Mon.*/
    DBCursor cursor = collection.find(query);
    



    1. MongoDbとNodejsでajaxページネーションを行うための最良の方法は何ですか?

    2. Redis py:接続プールをいつ使用するか?

    3. mongodbの集計リクエストで日付で並べ替え

    4. mongodbのメモリが不足するとどうなりますか?