python - 如何自定义mongo查询比较规则

标签 python mongodb mongodb-query

我有一些类似日期的数据:

  2013-03-26 05:33:15
  2013-03-26 16:48:39
  ...

而且我不想使用默认的 Date() 方式将它们与我的查询进行比较。因为我只想知道白天是否匹配(小时:分钟 +/- 10 分钟)。

例如,如果我查询 05:28:15 ,它应该返回包含“2013-03-26 05:33:15”的条目

我一直在尝试使用关键字“自定义 mongodb 查询”找到一些提示,但没有产生任何结果。

我想知道这是否可能,或者是否有其他选择。

最佳答案

我会花时间查找并减去/添加您的容差并使用范围进行搜索:

from datetime import datetime, timedelta
from pymongo import MongoClient
client = MongoClient('localhost', 27017)

# Test Data
client.test.times.remove()
client.test.times.insert({ 'date': datetime(2013,03,26,05,33,15)})
client.test.times.insert({ 'date': datetime(2013,03,26,16,48,39)})


def get_approx_datetime(dt):
    start = dt-timedelta(minutes=10)
    end = dt+timedelta(minutes=10)
    return (start,end)


find_date = datetime(2013,03,26,05,28,15)
(start,end) = get_approx_datetime(find_date)


for time in client.test.times.find({ 'date': { '$gt': start, '$lt': end} }):
    print time

输出:

{u'date': datetime.datetime(2013, 3, 26, 5, 33, 15), u'_id': ObjectId('517cb34f1d41c806aec7c4ad')}

关于python - 如何自定义mongo查询比较规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259401/

相关文章:

python - 缺少 lzma 库吗?

python - Django 日志记录请求

node.js - 如何在 node.js 中迭代 mongodb 数据库以发送到 Algolia?

angularjs - mongoose 中 $gt 的问题

mongodb - 如何在mongodb中删除具有特定条件的重复项?

python - 在 Pandas 中,如果较小,如何将当前行项目设置为上一个?

mongodb - 构建 mongodb 模式

regex - 在mongo中执行优先级查询

mongodb - MongoDB中count()和find().count()的区别

python - 没有名为 'numpy' : Visual Studio Code 的模块