Как я могу обновить свойство даты в коллекции MongoDb, чтобы удалить часовой пояс и сделать его UTC, используя скрипт
Я ищу небольшой скрипт для обновления существующих дат в базе данных Монго и изменения их на UTC без изменения дат. Я добавлял документы в коллекцию MongoDb с некоторыми вневременными свойствами даты, которые, без намерения, включали местный часовой пояс. Теперь, когда я поймал свою ошибку, я устанавливаю их часовой пояс UTC в клиенте перед отправкой: но я хочу исправить документы, которые я добавил ранее. Не могли бы вы предоставить пример сценария обновления, который волшебным образом фиксирует введенные мною даты: свойства в UTC не должны изменяться; те с часовыми поясами EST или EDT должны стать датами UTC без изменения их дат.
1 ответ
Ну, во-первых, даты в Монго - UTC, но все же на них были часы. Чтобы убрать даты, я сделал это:
db.coll.find({$where: "this.dt && this.dt.getUTCHours() > 0"}
).forEach(function(doc) {
db.coll.update({ _id : doc._id },
{ $set : { dt : new Date(doc.dt.getTime() -
(doc.dt.getUTCHours() * 60 * 60 * 1000))}});}
);
И это слегка измененная копия этого: /questions/12946064/kak-pravilno-uvelichit-mnogo-dat-v-mongodb/12946076#12946076