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

Агрегиране на година и месец в MongoDB

  • инициализиране на параметрите на заявката
var year = req.year;
var month = req.month;
  • задайте условие за година по подразбиране
var condition = [{
  $eq: [{ $substr: ["$$this.k", 0, 4] }, String(year)]
}];
  • проверете дали месецът е наличен, а не всички, след което добавете условие
if (month && month != "all") {
  condition.push({
    $eq: [{ $substr: ["$$this.k", 5, 2] }, String(month)] 
  });
}
  • $filter за повторение на цикъл от код и филтриране над подготвените условия
db.collection.aggregate([
  {
    $set: {
      code: {
        $filter: {
          input: "$code",
          cond: { $and: condition }
        }
      }
    }
  }
])

Playground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да индексирам два масива в MongoDB?

  2. Самостоятелно хостван MongoDB

  3. Как да актуализирате вложен масив

  4. Идентифицирайте последния документ от набора с резултати MongoDB find().

  5. Как да следите за промени в конкретни полета в потока за промени на MongoDB