MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongo gruppiert nach Monat unter Verwendung von UNIX-Millisekundenzeit

Sie können die folgende Aggregation in mongodb 4.0 ausprobieren

Sie können timestamp umwandeln bis heute mit $toDate Aggregation und dann $group mit $month Aggregation

db.collection.aggregate([
  { "$match": { "type": "deposits" }},
  { "$addFields": {
    "date": {
      "$toDate": "$timestamp"
    }
  }},
  { "$group": {
    "_id": { "$month": "$date" },
    "deposits": {
      "$push": "$$ROOT"
    }
  }}
])

Sie können die folgende Aggregation in mongodb 3.4 ausprobieren

In 3.4 Sie können timestamp umwandeln bis heute durch Hinzufügen von new Date() darin und $group indem Sie $dateToString verwenden Aggregation

db.collection.aggregate([
  { "$match": { "type": "deposits" }},
  { "$addFields": {
    "date": {
      "$add": [ new Date(0), "$timestamp" ]
    }
  }},
  { "$group": {
    "_id": {
      "$dateToString": {
        "format": "%m",
        "date": "$date"
      }
    },
    "deposits": {
      "$push": "$$ROOT"
    }
  }}
])