MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Robomongo :Limite di memoria superato per $group

{ allowDiskUse: true } 

Dovrebbe essere posizionato subito dopo la pipeline di aggregazione.

Nel tuo codice dovrebbe andare così:

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 } )

Nota:utilizzo di { allowDiskUse: true } potrebbe introdurre problemi relativi alle prestazioni poiché la pipeline di aggregazione accederà ai dati dai file temporanei su disco. Dipende anche dalle prestazioni del disco e dalle dimensioni del set di lavoro. Testa le prestazioni per il tuo caso d'uso