首页 > 解决方案 > 如何使用python在mongo db中删除数据

问题描述

在我的 mongodb 中,我有大约 20K 条记录,现在从同一个 mongodb 我只在 python 中导入 500 条记录,现在我需要删除我已经导入的 500 条记录,是否可以使用 python 删除这 500 条记录?

我用于导入 500 条记录的代码

from pymongo import MongoClient
con = MongoClient(local host, 27017)
db = con.rssfeeds_db
data = pd.DataFrame(list(db.restdata.find().limit(500)))

标签: pythonmongodbimport

解决方案


您需要为每条记录使用 _id,以便您可以告诉 pymongo 要删除哪些记录。例如:

from pymongo import MongoClient
con = MongoClient(localhost, 27017)
db = con.rssfeeds_db

// create a list of the records. each one will be a dict.
records = [x for x in db.restdata.find().limit(500)]

// create a list of the 500 ids so we only need to call the db once
record_ids = [record['_id'] for record in records]

//create your dataframe
data = pd.DataFrame(records)

// delete all 500 records at once
db.restdata.delete_many(
    {'_id': 
        {'$in': record_ids}
    },
)

推荐阅读