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

how to optimize update query in pymongo for scraping project

如何在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

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/