如何使用pymongo删除一个集合?

时间:2018-02-22 09:24:38

标签: python scrapy pymongo

我使用scarpy抓取数据并使用MongoDB将其成功保存到托管mLab的云中。

我的收藏名称是recently,数据的数量是5。 enter image description here

我想再次抓取数据并更新我的集合recently,所以我尝试删除该集合然后插入。

这是我的代码pipelines.py:

from pymongo import MongoClient
from scrapy.conf import settings

class MongoDBPipeline(object):

    def __init__(self):
        connection = MongoClient(
            settings['MONGODB_SERVER'],
            settings['MONGODB_PORT'])
        db = connection[settings['MONGODB_DB']]
        # here is my collection name recently setting
        self.collection = db[settings['MONGODB_COLLECTION']]

    def process_item(self, item, spider):
        # try to drop my collection recently
        self.collection.drop()
        self.collection.insert(dict(item))
        return item

但是当我运行我的蜘蛛时,我看到我的集合recently计数是10(它应该是5我想要的) enter image description here

我正在寻找一些如何删除集合的代码。 这只是说db。[集合名称] .drop()

但是,当我在self.collection.drop()

之前尝试self.collection.insert(dict(item))时,我的情况就无效了

任何人都可以给我一些建议我的代码有什么问题吗?

那将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:14)

您需要使用drop。假设foo是一个集合

db.foo.drop()

或者您可以使用drop_collection

db.drop_collection(collection_name)