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

Обобщено групиране по дата с отместване на лятното часово време

Основната концепция тук е заявката ви да бъде „наясно“ кога „лятното часово време“ едновременно „започва“ и „завършва“ за дадения период на заявка и просто да предоставите този тест на $cond за да определите кое "отместване" да използвате:

db.collection.aggregate([
    { "$group": {
       "_id": {
           "$week": {
               "$add": [
                  "$Timestamp",
                  { "$cond": [
                      { "$and": [
                          { "$gte": [
                             { "$dayOfyear": "$Timestamp" },
                             daylightSavingsStartDay 
                          ]},
                          { "$lt": [ 
                             { "$dayOfYear": "$Timestamp" },
                             daylightSavingsEndDay
                          ]}
                      ]},
                      daylightSavingsOffset,
                      normalOffset
                  ]}
               ]
           }
       },
       "min": { "$min": "$Timestamp" }
    }}
])

Така че можете да направите това малко по-сложно, когато обхващате няколко години, но това все още е основният принцип. В в южното полукълбо вие стевинаги обхващаща година, така че всяко условие ще бъде "диапазон" от "начало" до "края на годината" и "начало на годината" до "край". Следователно $or с вътрешен $and в рамките на показаните оператори "диапазон".

Ако имате различни стойности за прилагане, открийте кога „трябва“ да изберете една от двете и след това приложете с помощта на $cond .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изпълнете собствена заявка за mongodb с драйвер за mongodb java

  2. Съхраняване и извличане на файл в MongoDB с помощта на Java &GridFs

  3. Как да изтриете дълбоко вложен обект в mongodb

  4. Получаване на необходимите документи от двете колекции в една заявка в MongoDB-3.2.7

  5. Производителност на MongoDB:Изпълняване на MongoDB Aggregations на вторични