Конвертировать long в ISODate используя pymongo
У меня есть коллекция с полем даты, как долго. Пример формата JSON коллекции выглядит следующим образом:
{
"processID" : "1410449146441-3-8863e29e0055",
"department" : "ABC",
"price" : 9.99,
"unitSold" : 19,
"date" : 1410449146442
},
{
"processID" : "14104491tf-alhb-8863e29e0055",
"department" : "XYZ",
"price" : 19.99,
"unitSold" : 21,
"date" : 1410985985985
}
Мне нужно преобразовать это поле даты в формат ISOdate, чтобы я мог извлечь из него год, месяц и день. Мне нужно сделать это в пимонго. Я пытался сделать это как datetime.datetime.fromtimestamp({"$divide": ["$date", 1e3]})
, но получил ошибку "TypeError: требуется поплавок"
Можете ли вы дать мне знать, как это сделать в пимонго?
0 ответов
Вы получили ошибку, потому что fromtimestamp - это функция Python, а не функция Mongo DB..fromtimestamp ожидает float вместо того, чтобы вы указали dict. Используйте модуль datetime для преобразования во время итерации курсора:
import datetime
for x in cursor:
timestamp = datetime.datetime.fromtimestamp(x.get("date")/1000)
# timestamp = object of type datetime.
Примечание. Если вы не разделите длинное значение на 1000, вы получите ошибку "год вне диапазона".