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

Как да се справим с проблема с часовата зона при съхраняване на дати в utc с помощта на mongod?

Освен SERVER-6310, споменат от Мат Джонсън, едно друго решение е да се използва $project оператор за добавяне или изваждане от часовата зона UTC, за да "измести времето" в правилната локална зона. Оказва се, че можете да добавяте или изваждате време в милисекунди.

Например, ако приемем, че имам поле за дата, наречено orderTime . Бих искал да попитам за EDT. Това е -4 часа от UTC. Това е 4 * 60 * 60 * 1000 милисекунди.

Така че след това ще напиша следната проекция, за да получа day_ordered в местно време за всички мои записи:

db.table.aggregate( 
    { $project : { orderTimeLocal : { $subtract : [ "$orderTime", 14400000] } } },
    { $project : { day_ordered : { $dayOfYear : "$orderTimeLocal" } } })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Съвпадение с подниз в агрегирането на mongodb

  2. Избягвайте общото ограничение от 16MB

  3. Yeoman, Mongoose и MongoDB скеле

  4. Натиснете към два отделни масива в едно извикване за актуализиране в mongodb

  5. Mongoose -- Име на колекцията принудително