【问题标题】:pymongo query using date range使用日期范围的 pymongo 查询
【发布时间】:2017-07-22 22:26:21
【问题描述】:

我有一个名为jobs的mongodb集合,有

{"_id":  "1", "jobUploadDate":  "2017-02-01T14:30:57.361Z"}, 
{"_id":  "2", "jobUploadDate":  "2017-02-02T14:31:26.497Z"},
{"_id":  "3", "jobUploadDate":  "2017-02-03T15:04:45.064Z"}

我正在使用 pymongo,查找两个日期之间的工作

def find_jobs(self,from_date,to_date):
    to_date = datetime.datetime.strptime(to_date, "%Y%m%d").isoformat()
    from_date = datetime.datetime.strptime(from_date, "%Y%m%d").isoformat()
    query = {}
    query['jobUploadDate'] = {'$lte': to_date,'$gte':from_date}

    #self.db = .....get mongodb connection and 

    jobs_found = self.db.jobs.find(query, {
        '_id': 1,
        'jobUploadDate': 1})

    return dumps(list(jobs_found))

print(find_jobs("20170202","20170202"))

我期待下面的输出,但它返回 NO 结果。

{"_id":  "2", "jobUploadDate":  "2017-02-02T14:31:26.497Z"}

如何将“jobUploadDate”投影到日期和剥离时间并进行比较?

【问题讨论】:

    标签: mongodb pymongo


    【解决方案1】:

    您用来剥离日期时间的日期格式将零时间分配给日期,测试一下:

    dstring = "20170202"
    d = datetime.strptime(dstring, "%Y%m%d")
    print(d)
    
    2017-02-02 00:00:00
    

    所以你应该打电话给find_jobs("20170202","20170203") 以获得你想要的一天的范围。

    【讨论】:

      猜你喜欢
      • 2021-04-27
      • 1970-01-01
      • 2014-05-17
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多