【发布时间】:2012-10-06 07:03:20
【问题描述】:
假设您有一组文档,其结构如下:
{ username: "jones",
likes: 20,
text: "Hello world!"
}
此外,假设您正在构建的应用程序需要显示有关每个用户的总点赞数的统计信息。 Mongodb 文档显示,您可以使用这样的 Map/Reduce 函数来完成此操作:
function() {
emit( this.username, {count: 1, likes: this.likes} );
}
但是,对我来说,每次将新文档插入数据库时,简单地增加一个“Like”计数器似乎更直观。这不需要像 Map/Reduce 那样遍历整个集合。它会立即更新计数器,而不是在下次 Map/Reduce 进程运行时更新。而且架构看起来更简单。
有人可以在回答中解释为什么 Map/Reduce 函数是更好的解决方案吗?
【问题讨论】: