【问题标题】:Remove documents using datetime object?使用日期时间对象删除文档?
【发布时间】:2016-04-09 21:14:51
【问题描述】:

尝试通过 pymongo 传递日期时间对象,因为我不能使用所有 pymongo 文档中所示的硬编码“日期时间”(例如:“2015-12-24T11:59:00Z”)。

只是想删除超过 7 天的集合。当我通过 'newDate' 向其传递 UTC 日期时,为什么会在“需要整数”时出错?

from datetime import datetime, timedelta
from pymongo import MongoClient

newDate = datetime.utcnow() - timedelta(days=7)
result = db.collection.remove({"receivedDateUtc" : { '$lte' : datetime(newDate) }} ) 

【问题讨论】:

  • 它与 pymongo 无关。仅使用 datetime(datetime.utcnow()) 会出现相同的错误,它需要 year(整数)作为第一个参数。

标签: python mongodb datetime pymongo


【解决方案1】:

原因是newDate已经是datetime对象了。

result = db.collection.remove({'receivedDateUtc' : { '$lte' : newDate }} )

演示:

In [67]: newDate = datetime.utcnow() - timedelta(days=7)

In [68]: newDate
Out[68]: datetime.datetime(2015, 12, 29, 22, 2, 41, 391369)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多