sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo grupp efter månad med UNIX millisekundstid

Du kan prova nedanstående aggregering i mongodb 4.0

Du kan konvertera timestamp hittills med $toDate aggregering och sedan $group med $month aggregering

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

Du kan prova nedanstående aggregering i mongodb 3.4

I 3.4 du kan konvertera timestamp till datum genom att lägga till new Date() i den och $group det genom att använda $dateToString aggregering

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



  1. Har WiredTiger från MongoDb prestandaproblemet med omallokering som MMAPv1

  2. mongodb grupperar värden efter flera fält

  3. Använd en JsonConverter globalt på en klass utan attributet

  4. MongoDB Scala - fråga dokument för ett specifikt fältvärde