Создайте ISODate с pyMongo

Я пытаюсь найти способ создания объекта ISODate с клиентом pyMongo, но без каких-либо успехов.

Я использую клиент http://pypi.python.org/pypi/pymongo3 , который сейчас является единственным серьезным, доступным в Python 3, но проблема, похоже, не связана с этой конкретной версией pymongo.

Я хотел бы знать, нашел ли кто-нибудь из вас решение использовать этот тип объекта MongoDB у клиента pymongo … спасибо за вашу помощь!

Вам просто нужно сохранить экземпляр datetime.datetime.

Вставка из оболочки python:

>>> c.test.test.insert({'date': datetime.datetime.utcnow()}) ObjectId('4e8b388367d5bd2de0000000') >>> c.test.test.find_one() {u'date': datetime.datetime(2011, 10, 4, 16, 46, 59, 786000), u'_id': ObjectId('4e8b388367d5bd2de0000000')} 

Запрос в оболочке монго:

 > db.test.findOne() { "_id" : ObjectId("4e8b388367d5bd2de0000000"), "date" : ISODate("2011-10-04T16:46:59.786Z") } 

Для тех, кто задается вопросом, как создать ISODate из метки времени:

 ts = time.time() isodate = datetime.datetime.fromtimestamp(ts, None) 

Это создаст объект datetime без часовой пояс. При вставке в MongoDB он преобразуется в правильный ISODate() .

Кроме того, я настоятельно рекомендую посмотреть на Python TimeTransitionsImage . Обратите внимание, что tuple здесь называется tuple (эквивалент struct в C). Также обратите внимание, что поля кортежей не совпадают с полями C, хотя именование одинаковое (например, tm_wday начинается с понедельника, а не в воскресенье).

 result = db.objects.insert_one( {"last_modified": datetime.datetime.utcnow()}) 

Здесь utc обозначает универсальные временные координаты.

На самом деле это тоже не работает. Когда вы пытаетесь использовать utcfromtimestamp или fromtimestamp, программа ошибается, говоря, что ей нужен float. Просто проанализируйте строку в объект времени даты и используйте это непосредственно в Mongodb. фильтр

 from_dt = datetime.strptime('2018-04-01','%Y-%m-%d') #from_dts = datetime.utcfromtimestamp(from_dt) to_dt = datetime.strptime('2018-04-30','%Y-%m-%d') #to_dts = datetime.utcfromtimestamp(to_dt) filterCondition = { "LastLogin" : { "$lte" : to_dt}, "LastLogin" : { "$gte" : from_dt} } 

А потом

 db[(colName)].find({ "" : filterCondition }) 

Должно сработать…

  • Как я могу подключиться к браузеру, открытому webdriver с seleniumом?
  • Пусть объект JSON принимает байты или позволяет выводить строки вывода
  • Зачем мне нужно «b» для кодирования строки Python с помощью Base64?
  • Установка Python 3 на RHEL
  • Установить numpy на python3.3 - Установить pip для python3
  • Как сделать python 3 print () utf8
  • Поскольку matplotlib.finance устарел, как я могу использовать новый модуль mpl_finance?
  • Ускорить bitstring / bit операции в Python?
  • Невозможно установить numpy из формата колеса
  • TypeError: не может использовать строковый шаблон для байтового объекта в re.findall ()
  • Являются ли словари упорядоченными в Python 3.6+?
  • Давайте будем гением компьютера.