Python 删除mongoDB中的部分数据
我有一个mongoDB集合,其计数为Python 删除mongoDB中的部分数据,python,mongodb,mongodb-query,mongo-shell,database,Python,Mongodb,Mongodb Query,Mongo Shell,Database,我有一个mongoDB集合,其计数为372985名称,我想删除200000之后的条目,以便删除后的条目总数从372985减少到200000 如何通过mongoDB查询实现这一点 用例 我的python代码无法按照我的机器配置处理大量数据,因此我想减小mongo集合的大小,以便它可以在有限的RAM中运行 如果mongo query无法做到这一点,是否有人可以提示python尝试这样做。您需要分步进行,因为MongoDB需要一个查询来匹配要删除的文档;MongoDB在删除文档时不能使用跳过或限制 查
372985
名称,我想删除200000
之后的条目,以便删除后的条目总数从372985
减少到200000
如何通过mongoDB查询实现这一点
用例
我的python代码无法按照我的机器配置处理大量数据,因此我想减小mongo集合的大小,以便它可以在有限的RAM中运行
如果mongo query无法做到这一点,是否有人可以提示python尝试这样做。您需要分步进行,因为MongoDB需要一个查询来匹配要删除的文档;MongoDB在删除文档时不能使用
跳过
或限制
var to_delete = db.collection.find({}, {_id : 1})
.skip(200000)
.toArray()
.map(function(doc) { return doc._id; });
db.collection.remove({_id: {$in: to_delete}})
我们可以使用跳过和删除文档游标中的记录吗loop@PraneethGudumasu:你能举例说明吗?试试{MongoClient client=new MongoClient(“localhost”,27017);MongoDatabase db=client.getDatabase(“students”);MongoCollection collection=db.getCollection(“grades”);MongoCursor cursor=collection.find().skip(10.iterator();while(cursor.hasNext()){Document doc=cursor.next();collection.deleteOne(doc);}这是一个mongoshell查询还是什么?我的意思是在哪里运行这个?那个是java驱动程序。我想,我们也可以从mongoshell执行游标