mongodb - 如何将 Mongo 变量的结果重定向到集合,然后将其导出到 csv 文件
问题描述
我有一个初学者 MongoDB 问题,但我真的被困在这个问题上。
所以,我有一些医疗数据的数据集, 我需要计算每列的平均值和标准差,并将其存储在下表中。
所以,我做了一个聚合
var average_age = db.ilp.aggregate(
{$match: {"age":{$ne:-1}}},
{"$group":{
"_id": null,
"avg_age": {"$avg":"$age"}
}
})
试图将它存储到一个变量中,我得到这个变量的以下输出:
{ "_id" : null, "avg_age" : 44.74614065180103 }
但是当我想将它插入到一个新集合中时, by db.test.insert(average_age)
,我得到以下输出:
完成所需的集合后,我想将其重定向到 csv 文件。
感谢您提供的任何帮助。
PS还有,我能告诉我为什么,第一次调用变量average_age时,它会输出上面显示的正确值,然后当我调用它时,它什么也不输出,就像它是空的一样。
解决方案
除了 Valijon 的出色答案之外,您还可以选择创建视图并使用mongoexport将集合直接保存为 CSV 文件。这样做的好处是您可以多次导出视图,每次导出时都会更新平均值:
db.createView('ilp_averages', 'ilp', [
{ $match: { "age": { $ne:-1 } } },
{"$group": {
"_id": null,
"avg_age": {"$avg":"$age"}
}])
并导出:
mongoexport --host <mongodbinstance>:<port> --type csv -d=<yourdb> -c=ilp_averages -o=ilp_averages.csv
请注意,mongoexport 的正确语法取决于您使用的 MongoDB 版本,可能会略有不同。
推荐阅读
- c# - 来自 Windows 音频输出的 C# 低音检测
- r - 如果 Pr(boys)=0.51,则 5 个婴儿中恰好有 3 个男孩的概率
- azure - 指向 Azure CDN 终结点的 Azure DNS 根域
- html - CSS定位问题flex-box网格与浮动文本
- excel - 选择形状时如何修复“对象不支持此属性或方法”错误
- java - Powermock + TestNG 未加载 configuration.properties
- html - CSS垂直多级下拉菜单问题
- javascript - Javascript/流变量未定义
- javascript - 如何导入 SequelizeDatabaseError
- postgresql - Postgres:如何为名称中包含句点字符('.')的用户创建用户映射