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

Agregace na úrovni měsíce a roku, také najděte průměr v MongoDB

  • $objectToArray převést data objekt ve formátu klíč–hodnota pole
  • $filter iterovat smyčku výše převedeného pole
  • zaškrtněte $and podmínky
  • $toDate získat data od data řetězce
  • $month pro výběr měsíce od data a $year vyberte rok
  • $in check in podmínka, pokud je měsíc v poli měsíců a rok je v poli let
  • $arrayToObject převést zpět na objekt z pole klíč–hodnota
var years = [2021];
var months = [5];
db.collection.aggregate([
  {
    $project: {
      data: {
        $arrayToObject: {
          $filter: {
            input: { $objectToArray: "$data" },
            cond: {
              $and: [
                { $in: [{ $year: { $toDate: "$$this.k" } }, years] },
                { $in: [{ $month: { $toDate: "$$this.k" } }, months] }
              ]
            }
          }
        }
      }
    }
  }
])

Hřiště




  1. shoda pole mongodb

  2. dial tcp [::1]:6397:connectex:Nelze navázat spojení, protože cílový počítač jej aktivně odmítl

  3. Redis Config Set s Node jS

  4. Vložte do mongodb pomocí perlu