python - 如何使用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)))
解决方案
您需要为每条记录使用 _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}
},
)
推荐阅读
- printf - 如何使用 printf 显示没有尾随零的浮点数
- ios - CollectionView 中的同一部分是否可以有 2 个标题?
- geoip - CentOS 6.X、iptables 1.47 和 Geolite2:我怎样才能使它工作?
- python - 映射 DataFrame 索引并前向填充 nan 值
- c# - UserManager.FindByEmailAsync 返回 null,但用户存在于数据库中
- sql-server - 使用服务代理运行时 sp_ogetproperty 失败
- java - 如何根据结果内部对象对mongo聚合查询进行排序
- algorithm - 找到以下代码的上限和下限
- node.js - 仅显示登录用户存在对象数组的记录
- python - 如何将 Userb 第一条消息发送给我?下面的代码有助于获取最新消息。我想要该用户的第一条消息给我