【问题标题】:Retrieve the values from array and store it in csv file using MongoDB使用 MongoDB 从数组中检索值并将其存储在 csv 文件中
【发布时间】:2014-10-11 00:50:43
【问题描述】:

这是输入的 json 文件。编写 Javascript 代码以使用 MongoDB 进行迭代。

{
  "Includes": {
    "Employees": {
      "14": {
        "name": "john",
        "age": 12,
        "activity": {
          "Count": 3502,
          "RatingValue": 5
        }
      },
      "17": {
        "name": "smith",
        "age": 23,
        "activity": {
          "Count": 232,
          "RatingValue": 5
        }
      }
    }
  }
}

Javascript 函数

var result = [];

db.details.find().forEach(function(doc) {
    var Employees = doc.Includes.Employees;
    if (Employees) {
        for (var key in Employees) {
            var Employee = Employees[key];
            var item = [];
            item.push(key);
            item.push(Employee.name);
            item.push(Employee.age);
            item.push(Employee.activity.Count);
            item.push(Employee.activity.RatingValue);
            result.push(item.join(","));
        }
    }
});

print(result);

我希望将输出以 3 行 5 列的形式写入 csv 文件,每列包含此模式中的一个值

Id 姓名年龄计数 RatingValue

14 约翰年龄 3502 5

17 史密斯 23 232 5

【问题讨论】:

    标签: javascript mongodb csv


    【解决方案1】:

    将最后的 print(result); 更改为以下内容:

    print("Id,name,age,count,RatingValue");
    print(result.join("\n"));
    

    注意:第一行仅用于列标题;第二行将每个员工的结果打印在单独的行上。

    然后调用您的脚本并将输出定向到 CSV 文件,如下所示:

    mongo --quiet "full-path-to-script.js" > "full-path-to-output.csv"
    

    注意:--quiet arg 禁止标准 Mongo 标头输出(shell 版本和初始数据库)。

    我创建了一个 details 集合,并将您的 JSON 文档添加到其中,然后运行修改后的脚本会生成以下 CSV 文件内容:

    Id,name,age,count,RatingValue
    14,john,12,3502,5
    17,smith,23,232,5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多