MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Robomongo:Speicherlimit für $group überschritten

{ allowDiskUse: true } 

Sollte direkt nach der Aggregationspipeline platziert werden.

In deinem Code sollte das so aussehen:

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

Hinweis:Verwendung von { allowDiskUse: true } kann zu Leistungsproblemen führen, da die Aggregationspipeline auf Daten aus temporären Dateien auf der Festplatte zugreift. Hängt auch von der Festplattenleistung und der Größe Ihres Arbeitssatzes ab. Testen Sie die Leistung für Ihren Anwendungsfall