J'utilise scarpy
pour explorer les données et les enregistrer sur l'hébergement cloud mLab
avec succès avec MongoDB.
Le nom de ma collection est recently
et le nombre de données est 5.
Je veux à nouveau analyser les données et mettre à jour ma collection recently
, donc j'essaie de supprimer la collection puis de l'insérer.
Voici mon code 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
Mais quand je lance mon araignée, je vois que ma collection recently
compte est 10 (Il devrait être 5 c'est ce que je veux)
Je cherche du code pour supprimer la collection. C'est juste dire db. [Nom de la collection] .drop ()
Mais ça ne marche pas dans mon cas quand j'essaie self.collection.drop()
avant self.collection.insert(dict(item))
N'importe qui peut me donner quelques suggestions Qu'est-ce qui ne va pas avec mon code?
Ce serait apprécié. Merci d'avance.
Vous devez utiliser drop
. Supposons que foo
est une collection
db.foo.drop()
Ou vous pouvez utiliser drop_collection
db.drop_collection(collection_name)