如何使用 Python 和 PyMongo 删除指定日期之前的文档?

2023-04-15 00:00:00 删除 指定 如何使用

首先,我们需要获取指定日期之前的时间戳,可以使用 Python 的 datetime 模块和 time 模块来实现。

import datetime
import time

def timestamp_before_date(date_string):
    date = datetime.datetime.strptime(date_string, '%Y-%m-%d')
    timestamp = time.mktime(date.timetuple())
    return timestamp

接下来,我们需要建立 PyMongo 连接。假设我们已经将数据库名和集合名存储在变量中。

from pymongo import MongoClient

client = MongoClient()
db = client[database_name]
collection = db[collection_name]

然后,我们可以使用 PyMongo 的 remove() 方法来删除符合条件的文档。代码演示中假设我们要删除“pidancode.com”网站发布在指定日期之前的所有文章。

date_string = '2021-01-01'
timestamp = timestamp_before_date(date_string)

query = {'website': 'pidancode.com', 'publish_time': {'$lt': timestamp}}
result = collection.delete_many(query)

print(result.deleted_count, 'documents deleted.')

这段代码会返回被删除的文档数量,我们可以打印出来作为确认。注意,这段代码实际执行时会直接删除满足条件的文档,请务必谨慎使用。

相关文章