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

効率的な方法でのmongodbの並べ替えと正規表現のクエリ

    テキストインデックス を作成してみてください。 country_lcで 、region_lc およびcity_lc フィールド:

    db.reviews.ensureIndex( { "country_lc": "text" } )
    db.reviews.ensureIndex( { "region_lc": "text" } )
    db.reviews.ensureIndex( { "city_lc": "text" } )
    

    テキストインデックス MongoDB2.4の新機能です。これらは、コレクションのドキュメント内の文字列コンテンツのテキスト検索をサポートするために追加されました。パフォーマンスのヒントについては、公式ドキュメントをご覧ください。

    さらに、クエリを次のように書き換えてみることができます

    db.location.find(
         { "docType": {"$in": [ "country", "region", "city" ]},
           "$or": [
             { "country_lc": /^unit/ },
             { "region_lc": /^unit/ },
             { "city_lc": /^unit/ },
           ]
        }, 
        { "country": 1, "region": 1, "city": 1, "docType" :1 }
       ).sort({ "country_lc" :1, "region_lc": 1, "city_lc":1 })
    

    注意 :これは、ドキュメントの構造に応じて、クエリと同等であるか、同等ではありません。)



    1. update.one ReactiveMongoでfetchNewObjectを使用する方法は?

    2. 関連ドキュメントをカウントするためのMongoDBのベストプラクティス

    3. PHPMongoDBカウントレコード

    4. サンタンデールUKでの次世代データウェアハウジング