Create an ISODate with pyMongo Create an ISODate with pyMongo python-3.x python-3.x

Create an ISODate with pyMongo


You just need to store an instance of datetime.datetime.

Inserting from the python shell:

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

Querying in the mongo shell:

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


For those who are wondering how to create ISODate from timestamp:

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

This will create datetime object with no timezone. When inserted to MongoDB it will get converted to proper ISODate().

Also, I strongly recommend looking at Python TimeTransitionsImage. Note that tuple here is named tuple (equivalent to struct in C). And also note that tuple fields are not the same as in C counterparts, even though the naming is the same (for instance, tm_wday starts with Monday and not Sunday).


Actually that does not work either. When you try to use either utcfromtimestamp or fromtimestamp, the program errors out saying that it needs a float. Just parse the string into a date time object and use that directly in the Mongodb. filter

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

And then

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

Would work...