sql >> Databáze >  >> NoSQL >> MongoDB

Robomongo :Překročen limit paměti pro $group

{ allowDiskUse: true } 

Mělo by být umístěno hned za agregačním kanálem.

Ve vašem kódu by to mělo vypadat takto:

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

Poznámka:Použití { allowDiskUse: true } může způsobit problémy související s výkonem, protože agregační kanál bude přistupovat k datům z dočasných souborů na disku. Záleží také na výkonu disku a velikosti vaší pracovní sady. Otestujte výkon pro váš případ použití



  1. Zadejte více kritérií v jarním dotazu mongo db

  2. Chyba aplikace po nasazení aplikace Meteor 1.0 na heroku

  3. Spuštění replikovaného MongoDB 4.2 v Kubernetes:konfigurace replset nebyla přijata

  4. Mongoose více spojení