在CouchApp视图中传递一个参数给map.js



我有一个像社交网络一样的CouchApp。我有一个喜欢按钮,当用户点击它时,创建并保存一个CouchDB JSON文档,其中包含字段post_id(被喜欢的帖子的ID)、user_id(喜欢该帖子的用户的ID)和type(值为"喜欢",表明该文档是喜欢的)。

在帖子旁边,我想指出它收到了多少个赞。我的map函数是这样的:

function(doc) {
  if (doc.type && doc.type == 'like') {
    emit(doc.post_id, 1);
  }
}

和my reduce, this:

function(post_ids, likes) {
  return sum(likes);
}

我的问题是,这个函数返回所有喜欢在网站上的所有帖子的总和。我认为我的reduce。js很好,也许我可以调整我的map.js接受一个post_id参数,这样我就可以从那个post_id检索点赞,但我怎么做呢?post_id来自设计文档,当然,当点击"Like"按钮时。

谢谢。

您需要查看group视图参数。如果不提供querystring参数,则默认是减少视图的整个内容。一旦您应用了group=true,您也可以使用keystartkey/endkey来挑选您需要的post id。

还有内置的reduce函数,可以更有效地执行基本的reduce操作。(因为它们是编译的erlang代码,而不是javascript源代码)只要把_count放在你的整个reduce.js的地方。(你甚至可以在你的emit中去掉1)

相关内容

  • 没有找到相关文章

最新更新