是否可以从集合中 mongodump 最后的“x”条记录?

2023-12-27

您可以使用 mongodump 从集合中转储最新的“x”文档吗?例如,在 mongo shell 中您可以执行:

db.stats.find().sort({$natural:-1}).limit(10);

mongodump 是否可以使用相同的功能?

我想解决方法是将上述文档转储到一个新的临时集合中,并对整个临时集合进行 mongodump,但如果能够通过 mongodump 来完成此操作,那就太好了。

提前致谢,

Michael


mongodump没有完全暴露游标接口。 但你可以解决这个问题,使用--query范围。 首先获取集合的文档总数

db.collection.count()

假设有 10000 个文档,您想要最后 1000 个。 为此,请获取要转储的第一个文档的 ID。

db.collection.find().sort({_id:1}).skip(10000 - 1000).limit(1)

在这个例子中,id 是"50ad7bce1a3e927d690385ec"。 现在你可以喂食了mongodump使用此信息,转储具有更高或相同 id 的所有文档。

$ mongodump -d 'your_database' -c 'your_collection' -q '{_id: {$gte: ObjectId("50ad7bce1a3e927d690385ec")}}'

UPDATE新参数--limit and --skip被添加到mongoexport可能会在该工具的下一版本中提供:https://github.com/mongodb/mongo/pull/307 https://github.com/mongodb/mongo/pull/307

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以从集合中 mongodump 最后的“x”条记录? 的相关文章

随机推荐