相关问题是 如何在SQL Server中高效地将行转换为列。但答案是特定于SQL的。
我希望在MongoDB中实现相同的结果,即将行转换为列,而不进行任何聚合(目前)。
集合看起来像下面这样。这些是Facebook页面属性的统计数据:
时间戳 | 属性名 | 属性值 -------------------------------- 1371798000000 | page_fans | 100 -------------------------------- 1371798000000 | page_posts | 50 -------------------------------- 1371798000000 | page_stories | 25 --------------------------------
我需要的答案是:
时间戳 | page_fans | page_posts | page_stories -------------------------------- 1371798000000 | 100 | 50 | 25 --------------------------------
列名是预先确定的。它们不必动态生成。但问题是如何在MongoDB中实现这一点。
我认为聚合对此目的没有用处。我需要使用MapReduce吗?但在这种情况下,我想没有什么可以减少的吧?另一个选择可能是在代码中获取这些值,并在编程语言(例如Java)中进行操作。
Any insights would be helpful. Thanks in advance :)!!!
编辑(基于Schaliasos的输入):
输入JSON:
预期输出JSON:
我希望在MongoDB中实现相同的结果,即将行转换为列,而不进行任何聚合(目前)。
集合看起来像下面这样。这些是Facebook页面属性的统计数据:
时间戳 | 属性名 | 属性值 -------------------------------- 1371798000000 | page_fans | 100 -------------------------------- 1371798000000 | page_posts | 50 -------------------------------- 1371798000000 | page_stories | 25 --------------------------------
我需要的答案是:
时间戳 | page_fans | page_posts | page_stories -------------------------------- 1371798000000 | 100 | 50 | 25 --------------------------------
列名是预先确定的。它们不必动态生成。但问题是如何在MongoDB中实现这一点。
我认为聚合对此目的没有用处。我需要使用MapReduce吗?但在这种情况下,我想没有什么可以减少的吧?另一个选择可能是在代码中获取这些值,并在编程语言(例如Java)中进行操作。
Any insights would be helpful. Thanks in advance :)!!!
编辑(基于Schaliasos的输入):
输入JSON:
{
"_id" : ObjectId("51cd366644aeac654ecf8f75"),
"name" : "page_storytellers",
"pageId" : "512f993a44ae78b14a9adb85",
"timestamp" : NumberLong("1371798000000"),
"value" : NumberLong(30871),
"provider" : "Facebook"
}
{
"_id" : ObjectId("51cd366644aeac654ecf8f76"),
"name" : "page_fans",
"pageId" : "512f993a44ae78b14a9adb85",
"timestamp" : NumberLong("1371798000000"),
"value" : NumberLong(1291509),
"provider" : "Facebook"
}
{
"_id" : ObjectId("51cd366644aeac654ecf8f77"),
"name" : "page_fan_adds",
"pageId" : "512f993a44ae78b14a9adb85",
"timestamp" : NumberLong("1371798000000"),
"value" : NumberLong(2829),
"provider" : "Facebook"
}
预期输出JSON:
{
"timestamp" : NumberLong("1371798000000"),
"provider" : "Facebook",
"page_storytellers" : NumberLong(30871),
"page_fans" : NumberLong("1371798000000"),
"page_fan_adds" : NumberLong("1371798000000")
}