gpt4 book ai didi

mongodb - 使用 mapReduce 选择一行中的所有字段

转载 作者:可可西里 更新时间:2023-11-01 09:56:08 28 4
gpt4 key购买 nike

我在 nodejs 中使用 mongoose。我正在使用 mapReduce 来获取按字段分组的数据。所以它作为一个集合给我的只是来自数据库每一行的分组字段的键。

我需要从数据库中获取按一个字段分组并根据另一个字段排序的所有字段。例如:我有一个数据库,其中包含前往这些地方和其他一些字段的地点和票价的详细信息。现在我需要以这样一种方式获取数据,即根据按票价为他们排序的地点对数据进行分组。 MapReduce 帮助我得到它,但我无法得到其他字段。

有没有办法使用 map reduce 获取所有字段,而不是像上面示例中提到的那样只获取两个字段?

最佳答案

我必须承认我不确定我是否完全理解您的问题。但也许以下想法之一可以帮助您:

任一个) 当您迭代 mapReduce 结果时,您可以从 mongodb 中获取每个结果的完整文档。这将使您能够以一些网络流量为代价访问每个文档中的所有字段。

) 您发送到 emit(key, value) 的值可以是一个对象。因此,您可以构造一个包含所有所需字段的值对象。请务必为您的 reduce 方法的返回值使用完全相同的对象结构。

我试着用一个(未经测试的)例子来说明。

map = function() {
emit(this.place,
{
'field1': this.field1,
'field2': this.field2,
'count' : 1
});
}

reduce = function(key, values) {
var result = {
'field1': values[0].field1,
'field2': values[0].field2,
'count' : 0 };

for (v in values) {
result.count += values[v].count;
}

return obj;
}

关于mongodb - 使用 mapReduce 选择一行中的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com