year now new month and mongodb python-3.x pymongo isodate

now - new date in mongodb



Crea un ISODate con pyMongo (4)

He estado tratando de encontrar una forma de crear un objeto ISODate con el cliente pyMongo, pero sin éxito hasta el momento.

Uso el cliente http://pypi.python.org/pypi/pymongo3 , que es el único serio disponible en Python 3 por ahora, pero el problema no parece provenir de esta versión específica de pymongo.

Me gustaría saber si alguno de ustedes ha encontrado una solución para usar este tipo de objeto MongoDB de un cliente de pymongo ... ¡gracias por su ayuda!


En realidad eso tampoco funciona. Cuando intenta utilizar utcfromtimestamp o fromtimestamp, el programa se equivoca al decir que necesita un flotador. Simplemente analiza la cadena en un objeto de fecha y hora y úsala directamente en Mongodb. filtrar

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} }

Y entonces

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

Trabajaría...


Para aquellos que se preguntan cómo crear ISODate desde timestamp:

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

Esto creará el objeto datetime sin zona horaria. Cuando se inserta en MongoDB, se convertirá en ISODate() adecuado ISODate() .

Además, recomiendo consultar Python TimeTransitionsImage . Tenga en cuenta que la tuple aquí se llama tuple (equivalente a struct en C). Y también tenga en cuenta que los campos de tupla no son los mismos que en las contrapartes de C, aunque el nombre es el mismo (por ejemplo, tm_wday comienza el lunes y no el domingo).


Solo necesita almacenar una instancia de datetime.datetime.

Inserción desde el shell de 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'')}

Consultando en el caparazón de mongo:

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


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

Aquí utc significa Coordenadas de tiempo universales.