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

Agregace za rok a měsíc v MongoDB

  • inicializovat parametry požadavku
var year = req.year;
var month = req.month;
  • nastavit výchozí podmínku roku
var condition = [{
  $eq: [{ $substr: ["$$this.k", 0, 4] }, String(year)]
}];
  • zkontrolujte, zda je k dispozici měsíc a ne všechny, a poté přidejte podmínku
if (month && month != "all") {
  condition.push({
    $eq: [{ $substr: ["$$this.k", 5, 2] }, String(month)] 
  });
}
  • $filter iterovat smyčku kódu a filtrovat nad připravenými podmínkami
db.collection.aggregate([
  {
    $set: {
      code: {
        $filter: {
          input: "$code",
          cond: { $and: condition }
        }
      }
    }
  }
])

Hřiště




  1. MongoDB 4.2.1 - updateMany:Chyba:dokument operace aktualizace musí obsahovat atomické operátory

  2. Složený klíč MongoDB:InvalidOperationException:{document}. Identita není podporována

  3. Nelze vytvořit index v mongodb, klíč je příliš velký na indexování

  4. Mongodump ze vzdáleného serveru