我正在尝试使用 MongoDB 来分析 Apache 日志文件。我从 Apache 访问日志创建了一个 receipts
集合。以下是我的模型外观的简短摘要:
db.receipts.findOne()
{
"_id" : ObjectId("4e57908c7a044a30dc03a888"),
"path" : "/videos/1/show_invisibles.m4v",
"issued_at" : ISODate("2011-04-08T00:00:00Z"),
"status" : "200"
}
我写了一个 MapReduce function按 issued_at
日期字段对所有数据进行分组。它总结了请求的总数,并提供了每个唯一路径的请求数的分割。以下是输出的示例:
db.daily_hits_by_path.findOne()
{
"_id" : ISODate("2011-04-08T00:00:00Z"),
"value" : {
"count" : 6,
"paths" : {
"/videos/1/show_invisibles.m4v" : {
"count" : 2
},
"/videos/1/show_invisibles.ogv" : {
"count" : 3
},
"/videos/6/buffers_listed_and_hidden.ogv" : {
"count" : 1
}
}
}
}
我怎样才能使输出看起来像这样:
{
"_id" : ISODate("2011-04-08T00:00:00Z"),
"count" : 6,
"paths" : {
"/videos/1/show_invisibles.m4v" : {
"count" : 2
},
"/videos/1/show_invisibles.ogv" : {
"count" : 3
},
"/videos/6/buffers_listed_and_hidden.ogv" : {
"count" : 1
}
}
}
最佳答案
目前不可能,但我建议为这种情况投票:https://jira.mongodb.org/browse/SERVER-2517 .
关于mongodb - 在 MongoDB mapreduce 中,如何展平值对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257989/