MongoDB
 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вземете брой на общите документи с MongoDB, когато използвате лимит

  2. Актуализиране на полето със стойност на друго поле в документа

  3. Получете размера на всички документи в заявка

  4. Персонализирани низове за потребителска връзка за екземпляри на MongoDB с удостоверяване

  5. търсене в база данни с mongoose api и nodejs?