Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Couchdb 在CouchApp视图中将参数传递给map.js_Couchdb_Mapreduce_Couchapp - Fatal编程技术网

Couchdb 在CouchApp视图中将参数传递给map.js

Couchdb 在CouchApp视图中将参数传递给map.js,couchdb,mapreduce,couchapp,Couchdb,Mapreduce,Couchapp,我有一个像社交网络一样运作的CouchApp。我有一个like按钮,当用户单击它时,它会创建并保存一个CouchDB JSON文档,其中包含post_id(喜欢的帖子的id)、user_id(喜欢帖子的用户的id)和type(值为“like”,表示文档是like) 除了这篇文章,我想指出它收到的喜欢的数量。我的映射函数如下所示: function(doc) { if (doc.type && doc.type == 'like') { emit(doc.post_id

我有一个像社交网络一样运作的CouchApp。我有一个like按钮,当用户单击它时,它会创建并保存一个CouchDB JSON文档,其中包含post_id(喜欢的帖子的id)、user_id(喜欢帖子的用户的id)和type(值为“like”,表示文档是like)

除了这篇文章,我想指出它收到的喜欢的数量。我的映射函数如下所示:

function(doc) {
  if (doc.type && doc.type == 'like') {
    emit(doc.post_id, 1);
  }
}
我的意思是:

function(post_ids, likes) {
  return sum(likes);
}
我的问题是,这个函数返回站点中所有帖子中所有喜欢的内容的总和。我认为我的reduce.js很好,也许我可以调整map.js以接受post_id参数,这样我就可以从post_id中只检索喜欢的内容,但是我该怎么做呢?当然,当单击“Like”按钮时,post_id来自设计文档

谢谢。

您需要查看视图参数。如果未提供querystring参数,默认设置是减少视图的全部内容。应用
group=true
后,还可以使用
key
startkey/endkey
选择所需的帖子id

此外,还有一些方法可以更有效地执行基本的reduce操作。(因为它们是编译的erlang代码,而不是javascript源代码)只需将
\u count
放在整个
reduce.js
的位置。(您甚至可以在
emit
中取消
1

您需要查看视图参数。如果未提供querystring参数,默认设置是减少视图的全部内容。应用
group=true
后,还可以使用
key
startkey/endkey
选择所需的帖子id


此外,还有一些方法可以更有效地执行基本的reduce操作。(因为它们是编译的erlang代码,而不是javascript源代码)只需将
\u count
放在整个
reduce.js
的位置。(你甚至可以在你的
emit
中去掉
1

好吧,我刚刚意识到我的目标有问题。我真的应该创建另一个文档,作为一个特定帖子的喜欢者和喜欢者的计数器。有时候CouchDB最困难的事情是当您来自像MySQL这样的关系数据库时。你应该首先改变你的想法。好吧,我刚刚意识到我的目标有问题。我真的应该创建另一个文档,作为一个特定帖子的喜欢者和喜欢者的计数器。有时候CouchDB最困难的事情是当您来自像MySQL这样的关系数据库时。你真的应该首先改变你的想法。