架构:
{
"Name" : "Ammulu",
"Details" : [
{
"Date" : "2018-08-10",
"Client" : "Mongo",
"ChargeCode" : {
"Test" : "2",
"Analysis" : "1",
"Meeting" : "3"
}
},
{
"Date" : "2018-08-11",
"Client" : "Mongo",
"ChargeCode" : {
"Test" : "2",
" Cod " : "1",
"Meeting" : "3"
}
},
{
"Date" : "2018-08-12",
"Client" : "Mongo",
"ChargeCode" : {
"Test" : "2",
" Cod " : "1",
"Meeting" : "3"
}
}
]
}
我想将此架构导出到csv
文件中,我尝试了以下查询:
mongoexport --db sample --collection test --fields Name,Details.0.Date --query "{'Name':/Ammulu/)}" --type=csv --out C:\Users\home\Desktop\users.csv
我得到以下输出:
Name Details.0.Date
Ammulu 2018-08-10
我想以这种格式导出模式,并且还检索详细信息数组中的所有日期
Name Date ChargeCode
Ammulu 2018-08-10 Test : 2, Analysis : 1, Meeting : 3
2018-08-11 Test : 2, Cod : 1, Meeting : 3
2018-08-12 Test : 2, Cod : 1, Meeting : 3
任何帮助,谢谢。
答案 0 :(得分:0)
您可以使用聚合框架,以上述查询作为$match运算符来过滤文档,然后使用$out运算符将聚合管道返回的文档写入指定的集合中。
db.col.aggregate([
{ "$match": { "Name": "Ammulu" } },
{ "$unwind": "$Details" },
{ "$project": { "Name": 1, "Date": "$Details.Date", "ChargeCode":
"$Details.ChargeCode", "_id": 0 } },
{ "$out": "out_data" }
])
此处导出为CSV mongoexport
mongoexport --db db_name --collection out_data --fields Name,Date,ChargeCode --type csv --out out_path