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

集約フレームワークの$skipと$limit

    これは私たちが話しているテキスト検索クエリであるため、最適な形式は次のとおりです。

    db.collection.aggregate([
        { 
           "$match": {
                   "$text": { "$search": "cake tea" }
        }
        },
        { "$sort": { "score": { "$meta": "textScore" } } },
        { "$limit": skip + limit },
        { "$skip": skip }
    ])
    

    上位の「ソート」結果からのメモリリザーブの理論的根拠は、それ自体の「制限」内でのみ機能し、これは、データのいくつかの妥当な「ページ」を超えるものには最適ではありません。

    メモリ消費に合理的な範囲を超えて、追加のステージは、プラスではなくマイナスの効果をもたらす可能性があります。

    これらは実際には、現在のフォームでMongoDBが利用できるテキスト検索機能の実際的な制限です。ただし、より詳細でパフォーマンスが必要な場合は、多くのSQL「フルテキスト」ソリューションの場合と同様に、外部の「専用」テキスト検索ソリューションを使用することをお勧めします。



    1. MongoDBと負荷分散の概要

    2. 数値タイプフィールドのマングースfind()正規表現

    3. Docker&Celery-エラー:Pidfile(celerybeat.pid)は既に存在します

    4. MongoDB:配列内のアイテムの数をカウントします