对于生产备份,MongoDB 建议使用mongodump而不是mongoexport以确保数据的准确性。但是,在备份之前,我需要从 MongoDB 数据库中“清除”数据。我不知道除mongoexport之外的任何服务器端数据清理选项。两个问题:
(对不起,不知道)
--query将选择或排除整个文档,而不是字段。
不过,这将是一个好主意:
--query '{datetime:{$gt:ISODate("2014-01-01T00:00:00.000Z")}},{_id:0,name:1,address:1,interests:1}'* )
Run Code Online (Sandbox Code Playgroud)
作为第一个问题的答案,这两个工具(默认情况下)只会遍历_id索引以获取数据,然后将其写入磁盘。所以,是的,这两种工具都会类似地影响您的工作集,这就是为什么我通常建议在辅助(如果可能的话,最好是隐藏的辅助)上运行它们。如果您正在处理大量数据,我将在此处的评论中回应 Stennie,并推荐其他备份方法。
对于第二个问题,我假设您正在寻找mongodump与--fieldsfrommongoexport仅转储特定字段的选项等效的选项。该查询选项可以用来筛选结果,但它无法与投影使用(选择返回的字段) -这是正在跟踪的功能要求TOOLS-28,但还没有计划。正如 Stennie 还提到的,这里的另一个选择是编写一个适合您需求的自定义导出器(同样,我仍然建议在辅助设备上运行它以保护您的工作集)。
| 归档时间: |
|
| 查看次数: |
11702 次 |
| 最近记录: |