Reputation: 5946
I do not seem to be able to query records and get what I expect. For example I am searching
today = datetime.datetime.today()
past = today + timedelta(days=-200)
results = mongo.stuff.find({"date_added": {"gt": past}}, {"id":1})
I have the following date specified in MongoDB:
"date_added": {
"$date": "2016-04-19T18:47:54.101Z"
},
But I get no results! Is this down to the timezone which appears in the MongoDB date which is screwing things up.
Upvotes: 2
Views: 1480
Reputation: 544
This is just a typing error:
Try with the following code:
results = mongo.stuff.find({"date_added": {"$gt": past}}, {"id":1})
You forgot about the $ sign in $gt.
Upvotes: 1
Reputation: 64
Use an aware datetime object (with timezone info).
# E.g. with UTC timezone :
import pytz
import datetime
today = datetime.datetime.today()
past = today + timedelta(days=-200)
pytc.utc.localize(past)
results = mongo.stuff.find({"date_added": {"gt": past}}, {"id":1})
To use a different timezone to localize, try something like pytz.timezone('US/Mountain')
P.S. you'll need pip install pytz
Upvotes: 1