mongodb - 在 MongoDB mapreduce 中,如何展平值对象?

标签 mongodb mapreduce

我正在尝试使用 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 functionissued_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/

相关文章:

node.js - mongodb 中填充的替代方案?

java - 编码对象时未使用 MongoDB BSON 编解码器

java - Spring MongoDB 查询正则表达式

java - 如何根据hadoop中的公共(public)键连接两个数据集?

java - yarn 异常 : Unauthorized request to start container

java - 在 mongo 文档中创建自动增量字段

linux - 从 Windows 和 Mac 客户端机器访问 MongoDB

mapreduce - RavenDB 中多映射索引与空间索引失败

eclipse - 如何使用 Java -jar 命令运行 map reduce 作业

hadoop - 具有库0.0.8执行程序错误的Mesos 0.21.0上的Hadoop 2.5.0