【问题标题】:How to select the first lines of a BSON file如何选择 BSON 文件的第一行
【发布时间】:2017-01-27 11:49:40
【问题描述】:

我在 Linux 服务器上有一个巨大的 BSON 文件 (100GB),我想将它导入 MongoDB。 为了测试导入,我想用 BSON 文件的 1000 行/元组创建一个文件。

您知道如何将前 1000 行提取到另一个 BSON 文件中吗?

谢谢!

【问题讨论】:

  • 根据您要测试的内容,只需执行 dd 并将前 20 megs 复制到另一个文件并导入该文件。最后一个文档将被截断并且插入失败。
  • 好的!有效 !我们认为它会导致整个导出失败。谢谢 dnlbmn!
  • 发布的答案完全反映了您提出的问题,如果您想要测试 1000 个文档并证明在 CI 管道中没有错误,是否有什么特别之处。

标签: mongodb file extract bson


【解决方案1】:

我意识到上述评论并不能解决您提出的问题。

如果你真的想雕刻“前 1000 个”,我可能还是会通过 mongo 折腾它

dd if=/path/to/your/file.bson of=/path/to/your/small.bson bs=1M count=20

导入 20Meg 文件,希望其中包含超过 1000 个文档(如果不增加 dd 大小)。

获取第 1000 个对象 ID

db.col.find({},{_id:1}).sort({_id:-1}).skip(999).limit(1)

这将为您提供一个对象 ID 以供以后使用。

然后使用 mongodump 命令准确导出 1000 个文档

参考:https://docs.mongodb.com/manual/reference/program/mongodump/

mongodump --db YOUR_DB --collection YOUR_COL --query '{_id:{$lte:ObjectId("THE_ID_FROM_LAST_STEP")}}' 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2016-02-25
    • 2018-06-15
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多