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

Групиране на Mongo по месеци с помощта на UNIX милисекунди време

Можете да опитате по-долу агрегиране в mongodb 4.0

Можете да конвертирате timestamp до дата с помощта на $toDate агрегиране и след това $group с $month агрегиране

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

Можете да опитате агрегацията по-долу в mongodb 3.4

В 3.4 можете да конвертирате timestamp към дата чрез добавяне на new Date() в него и $group чрез използване на $dateToString агрегиране

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Възможно ли е да се направи заявка за диапазон от хешове на хеширан индексиран ключ в mongodb?

  2. Най-добрият начин за съхраняване на времето от деня в Mongoose

  3. Защо базата данни на приложение Meteor, което е стартирано веднъж (и никога не е заредено), заема близо 3 GB?

  4. Mongoose актуализира или вмъква много документи

  5. Mongoose:Изисква се път за грешка при валидиране