如何优化 pymongo 中的更新查询以进行抓取项目

Posted

技术标签:

【中文标题】如何优化 pymongo 中的更新查询以进行抓取项目【英文标题】:how to optimize update query in pymongo for scraping project 【发布时间】:2021-06-29 08:47:29 【问题描述】:

如何在 pymongo 中创建和刷新索引以加快更新查询。 如文章 [1] 部分所述,以下代码适用于少量条目

    self.collection.update('url': item['url'], dict(item), upsert=True)

但是一旦达到几万,就很慢了。

[1]https://realpython.com/web-scraping-and-crawling-with-scrapy-and-mongodb/#mongodb

【问题讨论】:

【参考方案1】:

url 字段上创建索引

https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.create_index

https://docs.mongodb.com/manual/indexes/

self.collection.create_index('url')

在您的情况下,url 将是唯一的,您可以创建唯一索引。

https://docs.mongodb.com/manual/core/index-unique/#unique-indexes

self.collection.create_index('url', unique = True)

注意-如果您有大量现有数据,请在后台创建索引

https://docs.mongodb.com/manual/core/index-creation/

【讨论】:

以上是关于如何优化 pymongo 中的更新查询以进行抓取项目的主要内容,如果未能解决你的问题,请参考以下文章

pymongo 中的模糊查询以及以某个值开始的模糊查询pymongo $regex /^

Python中的数据库连接与查询——使用pymongo

在同一查询中选择和更新 PostgreSQL 以进行优化

如何优化查询以使用oracle中另一个表中的列更新表列

使用 Pymongo 更新具有匹配 id 和数组元素之一的单个数组项

pymongo实战