Как я могу хранить время в MongoDB? Как строка? Давать произвольный год/месяц/день?
например. "23:55:00"
Я собираюсь преобразовать базу данных расписания автобусов из Postgres в Mongo.
Postgres имеет тип данных time without timezone
, который я использую для хранения времени остановки, и мне трудно понять, как его перенести.
Кажется, не имеет смысла давать ему произвольный год/месяц/день, чтобы преобразовать его в объект Date javascript, но я планирую выполнить некоторые простые вычисления со временем после анализа данных, чтобы показать например, "следующее время остановки", поэтому, если я сохраню его как строку, мне все равно придется преобразовать его во что-то в конце концов, чтобы сделать сравнения
Я действительно новичок в MongoDB, и любой совет будет очень благодарен
Ответы
Ответ 1
Вы можете сохранить время как число (количество секунд с 00:00:00). Он будет, естественно, отсортирован и легко конвертируется из/в формат hh: mm: ss при необходимости.
//from 23:55:00 to the stored time
storedTime = hours * 3600 + minutes * 60 + seconds
//from the stored time to 23:55:00
hours = storedTime / 3600 // needs to be an integer division
leaves = storedTime - hours * 3600
minutes = leaves / 60
seconds = leaves - 60 * minutes