gpt4 book ai didi

python - 删除mongoDB中的部分数据

转载 作者:可可西里 更新时间:2023-11-01 09:49:49 25 4
gpt4 key购买 nike

我有一个包含 372985 个名称的 mongoDB 集合,我想删除 200000 之后的条目,以便删除后的条目总数从 减少372985200000

我如何通过 mongoDB 查询来做到这一点?

用例

根据我的机器配置,我的 python 代码无法处理大量数据,所以我想减小 mongo 集合的大小,以便它可以在有限的 RAM 中运行。

如果这不能通过 mongo 查询来完成,有人可以提示尝试使用 python 来做同样的事情吗。

最佳答案

您需要分步执行,因为 MongoDB 需要一个查询来匹配要删除的文档;删除文档时,MongoDB 不能使用skiplimit

  1. 查找要删除的(的)文档,使用 skip 跳转到 200000 之后的文档
  2. 删除属于1中找到的列表的文档

您可以在 mongo shell 中尝试:

var to_delete = db.collection.find({}, {_id : 1})
.skip(200000)
.toArray()
.map(function(doc) { return doc._id; });

db.collection.remove({_id: {$in: to_delete}})

关于python - 删除mongoDB中的部分数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38177273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com