MongoDB 指南针不导出所有数据以进行收集

Rah*_*ane 6 mongodb mongodb-compass

当尝试从 MongoDB 指南针导出集合时,它不会导出所有数据,而只会导出所有文档中存在的字段。例如:如果文档 1 有

{
    "Name": "Alex",
    "__v": 0
}
Run Code Online (Sandbox Code Playgroud)

如果文档 2 有


{
    "Name": "Joe",
     "ID"  : 07
    "__v": 0
}
Run Code Online (Sandbox Code Playgroud)

当尝试导出集合时,它仅导出名称字段。我正在尝试通过 MongoDB Compass 导出所有字段。有没有其他方法可以通过任何代码或脚本导出所有数据

编辑:解决方案是更新到新版本的指南针,并且在从 mongo 导出数据时,如果列表中不存在字段名称,则可以选择添加字段,我们可以添加指南针错过的字段

Sal*_*ati 10

MongoDB Compass 长期以来一直存在导出导入数据的问题,而且似乎他们不愿意改进它!

当您尝试使用指南针导出数据时,它会使用一些示例文档来选择字段,如果您足够不幸,您将错过一些字段。

解决方案:

  1. 使用Mongo DB Compass Aggregation选项卡查找所有文档中的所有现有字段:

    [{$project: { arrayofkeyvalue: { $objectToArray: '$$ROOT'} }},
    {$unwind: '$arrayofkeyvalue'},
    {$group: { _id: null, allkeys: { $addToSet: '$arrayofkeyvalue. k' } }}]

  2. 将第一步中的字段添加到导出完整集合(选择字段)。

  3. 导出吧!