Установить дату и время в другом поле в MongoDB

Я вставляю объект даты из Java в Mongodb, mongo ISODate(...) хранит дату со временем, мое требование - хранить оба в другом поле.

Это возможно ?

примечание: не нужно решение, которое хранит миллисекунды вместо даты. хочу сохранить только дату типа "2013-06-19" и время типа "00:00:00"

если я использую для этого формат String, чем сложно выполнить операцию с датой.


person Yogesh Prajapati    schedule 19.06.2013    source источник
comment
БД БД = mongo.getDB (демо); DBCollection dbCollection = db.getCollection (testcoll); Дата Дата = новая Дата(); dbCollection.save (новый BasicDBObject (дата, дата));   -  person Yogesh Prajapati    schedule 19.06.2013
comment
Нет, MongoDb не имеет поля только даты или времени. docs.mongodb.org/manual/reference/glossary/#term-bson Рассмотрите возможность сохранения значения даты как экземпляра Date без времени и времени в виде целого числа.   -  person WiredPrairie    schedule 19.06.2013


Ответы (1)


Вы можете преобразовать объект Date в временную метку unix как timestamp, затем сохранить timestamp / 86400 в поле и timestamp % 86400 в другое поле.

person lqs    schedule 19.06.2013
comment
после вставки объект Mongo выглядит как {date: ISODate (2013-06-09), Time: 00:02:00}? - person Yogesh Prajapati; 19.06.2013
comment
@yogeshprajapati преобразует дату в 1370707320, вычисляет дату 1370707320/86400 = 57720 и время 1370707320% 86400 = 57720. и затем сохраняет их в mongodb: {"date": 15864, "time": 57720} - person lqs; 19.06.2013
comment
я знаю, но я хочу, как указано выше, примечание написано в моем вопросе. - person Yogesh Prajapati; 19.06.2013