使用 mongodump 转储集合的前 N ​​个文档

Tho*_*aud 4 mongodb

我对 MongoDB 很陌生,我想知道如何使用 .dumps 转储集合的前 N ​​个元素mongodump。我无法弄清楚我必须使用的查询。

您将如何转储最后 N 个元素?

小智 5

没有直接的方法来限制通过 mongodump 导出的记录数量;然而,可以使用查询参数间接地进行。

\n\n

首先,您需要找到需要导出的最后(n)个文档。

\n\n

假设您要导出前 50 个文档。如果要查找第一个(n),则首先查找第 50 个文档 _id \xe2\x80\x93,然后升序排序并在查询中使用 $lte 运算符向下。

\n\n
db.col.find({},{_id:1}).sort({_id:-1}).skip(49).limit(1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

记下 _id 值。

\n\n

现在将您的 _id 传递给 mongodump 并从控制台运行它。(不是来自 mongo shell)

\n\n
mongodump \\\n--db <some_db> \\\n--collection <some_col> \\\n--query \'{_id:{$gte:ObjectId("previously noted _id")}}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

注意:此解决方案导出最后(n)个文档而不是第一个(n),但调整它很简单。

\n