首页 > 解决方案 > 如何优化 pymongo 中的更新查询以进行抓取项目

问题描述

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

标签: mongodbweb-scrapingindexingpymongoinsert-update

解决方案


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/


推荐阅读