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

Robomongo:$groupのメモリ制限を超えました

    { allowDiskUse: true } 
    

    集約パイプラインの直後に配置する必要があります。

    あなたのコードでは、これは次のようになります:

    db.getCollection('RAW_COLLECTION').aggregate([
      // Group on unique value storing _id values to array and count 
      { "$group": {
        "_id": { RegisterNumber: "$RegisterNumber", Region: "$Region" },
        "ids": { "$push": "$_id" },
        "count": { "$sum": 1 }      
      }},
      // Only return things that matched more than once. i.e a duplicate
      { "$match": { "count": { "$gt": 1 } } }
    ], { allowDiskUse: true } )
    

    注:{ allowDiskUse: true }を使用する アグリゲーションパイプラインはディスク上の一時ファイルのデータにアクセスするため、パフォーマンスに関連する問題が発生する可能性があります。また、ディスクのパフォーマンスとワーキングセットのサイズによっても異なります。ユースケースのパフォーマンスをテストする



    1. Node.js、(Hi)Redis、およびマルチコマンド

    2. メモリが不足した場合、Redisは何をしますか?

    3. GolangGraphQLMongoDBデータベースから日付とIDを取得するのに苦労しています

    4. GridFSmongodbからオーディオ/ビデオをストリーミングするためのAPIを構築する