如何使用 Python 和 PyMongo 删除指定日期之前的文档?
首先,我们需要获取指定日期之前的时间戳,可以使用 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.')
这段代码会返回被删除的文档数量,我们可以打印出来作为确认。注意,这段代码实际执行时会直接删除满足条件的文档,请务必谨慎使用。
相关文章