MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

групирайте по ден/месец и вземете средна оценка за този ден/месец в mongo

За да групирате документи по ден/месец и да върнете ключа за месеца във вашия изход, трябва първо да $project ключовите полета в подходящи формати с помощта на Дата оператори, по-специално $ dateToString и $month оператори.

Това може да се направи в $проект етап преди $group стъпка, но не е необходимо, тъй като $group тръбопроводът побира предимно акумулатора оператори.

В предходния $group тръбопровод, можете да групирате документите по форматирания ключ за дата, да обобщите с помощта на $avg оператор и връща месеца като цяло число от предишния конвейер с помощта на $first акумулаторен оператор.

Изпълнението на следния конвейер за агрегиране трябва да ви даде желания резултат:

db.collection.aggregate([
  { "$group": {
    "_id": { 
        "$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" } 
    },
    "average": { "$avg": "$rating" },
    "month": { "$first": { "$month": "$ceatedAt" } },
  } }
]) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $weeklyUpdate #65 (15 април 2022 г.):GDELT, Mongoose и Hackathon Time!

  2. Как мога автоматично да съпоставя JSON с клас case, когато дадено поле е ключова дума на scala?

  3. findOneAndUpdate нарастване вместо актуализация в mongoose

  4. MongoDB не може да намери директория с данни след надстройка до Mac OS 10.15 (Catalina)

  5. Грешка в Mongoose Promise