MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Robomongo :limite de mémoire dépassée pour $group

{ allowDiskUse: true } 

Doit être placé juste après le pipeline d'agrégation.

Dans votre code, cela devrait ressembler à ceci :

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

Remarque :Utilisation de { allowDiskUse: true } peut introduire des problèmes liés aux performances car le pipeline d'agrégation accédera aux données à partir de fichiers temporaires sur le disque. Dépend également des performances du disque et de la taille de votre ensemble de travail. Tester les performances pour votre cas d'utilisation