我对 MongoDB 很陌生,我想知道如何使用 .dumps 转储集合的前 N 个元素mongodump
。我无法弄清楚我必须使用的查询。
您将如何转储最后 N 个元素?
小智 5
没有直接的方法来限制通过 mongodump 导出的记录数量;然而,可以使用查询参数间接地进行。
\n\n首先,您需要找到需要导出的最后(n)个文档。
\n\n假设您要导出前 50 个文档。如果要查找第一个(n),则首先查找第 50 个文档 _id \xe2\x80\x93,然后升序排序并在查询中使用 $lte 运算符向下。
\n\ndb.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\nmongodump \\\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