gpt4 book ai didi

mongodb - MongoRestore,跳过n个第一个文档

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

我正在恢复一个大型 mongo 数据库 (90 GB)。我正在使用 mongorestore,它在大约 70..90% 的恢复过程中默默地失败了。有没有办法在启动 mongorestore 时跳过转储的前 n 个文档?我知道有一个过滤器选项,您可以在其中提供过滤器查询,但它没有帮助。

如果我尝试再次恢复整个备份,由于重复索引错误,需要花费很多时间。我尝试再次恢复数据库,但再次失败(由于套接字异常)

由于 mongorestore 似乎按顺序处理 bson 转储,我想知道是否有办法说:“只需跳过转储的第 1'234'567 个文档并恢复其余部分”

我只有一大堆收藏。我已经在不同的部分打破了转储,但似乎还不够。告诉 mongorestore 跳过恢复的文档并继续操作会更容易。

谢谢

最佳答案

据我所知,在执行 mongorestore 时,无法告诉 MongoDB 跳过 n 个文档,但您可以利用 --filter 选项为了做一些模仿这个的事情。假设您使用的是 ObjectId 或具有某种序列的 _id,您可以对您的集合进行查询以查找第 n 个文档的 _id。像这样:

db.collection.find({}, { "_id" : 1 }).skip(n-1).limit(1);

然后您可以将此 _id 作为参数传递给 --filter 选项,告诉它只恢复所有大于此 _id 的文档>。像这样:

mongorestore --filter '{"_id": { $gt : "<ID>" }}'

如果你想在恢复之前删除数据库,你可以在上面的命令中添加--drop选项。

这应该只恢复 _id 大于第 n 个文档的文档,有效地跳过集合中的前 n 个文档。

关于mongodb - MongoRestore,跳过n个第一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24775881/

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