Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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
Javascript 计算couchdb文档中的标记数_Javascript_Mapreduce_Couchdb - Fatal编程技术网

Javascript 计算couchdb文档中的标记数

Javascript 计算couchdb文档中的标记数,javascript,mapreduce,couchdb,Javascript,Mapreduce,Couchdb,我有一个简单的文档设计是这样的 { _id: "something", type: "post", title: "A Title", content: "A Blog Content", tags: ["newtag", "oldtag", "bluetag", "youtag"] } 因此,每个文档都有一个“标记”数组。我试图做的是创建一个视图,该视图将计算标记被使用的次数。因此,它将搜索所有文档,发出标记,然后按键将它们相加。例如 Doc1 { _id: "s

我有一个简单的文档设计是这样的

{
  _id: "something", 
  type: "post", 
  title: "A Title",
  content: "A Blog Content",
  tags: ["newtag", "oldtag", "bluetag", "youtag"]
}
因此,每个文档都有一个“标记”数组。我试图做的是创建一个视图,该视图将计算标记被使用的次数。因此,它将搜索所有文档,发出标记,然后按键将它们相加。例如

Doc1
{
  _id: "something",
  type: "post",
  title: "A title",
  content: "Blog Content",
  tags: ["oldtag", "newtag", "bluetag", "youtag"]
}
Doc2
{
  _id: "domethin",
  type: "post",
  title: "another title",
  content: "another post",
  tags: ["oldtag", "notag", "whytag"]
}
考虑到我需要的东西将有“oldtag”:2,“notag”:1,“whytag”:1

但我似乎不明白。我试着用

"map": "function(doc) {if(doc.type == 'post') { for(var i = 0, l doc.tags.length; i < l; i++) { emit(doc.tags[i], 1); } } }",
"reduce": "_count"
“map”:“函数(doc){if(doc.type='post'){for(var i=0,l doc.tags.length;i
但那只会让我

{“行”:[ {“key”:null,“value”:20} ]}


有人知道怎么做吗?我被卡住了。谢谢。

您的视图中有无效的javascript

var i=0
l doc.tags
l应分配给doc.tags.length

请参阅固定版本:

{
  "_id": "_design/tagcount",
  "_rev": "1-d14c9d06e652ad23df1044ffbca9d85f",
  "views": {
    "count": {
      "reduce": "_count",
      "map": "function (doc) {\n  if(doc.type== 'post') { \n    for(var i = 0, l= doc.tags.length; i < l; i++) { emit(doc.tags[i], 1); } } \n}"
    }
  },
  "language": "javascript"
}
{
“_id”:“_设计/标记计数”,
“修订版”:“1-d14c9d06e652ad23df1044ffbca9d85f”,
“意见”:{
“计数”:{
“减少”:“\u计数”,
“映射”:“函数(doc){\n如果(doc.type='post'){\n for(var i=0,l=doc.tags.length;i
此外,还需要指定reduce:

http://localhost:5984//_design//_view/?limit=20&reduce=true&group=true


注意:用它们的实际值替换。视图中的javascript无效

var i=0
l doc.tags
l应分配给doc.tags.length

请参阅固定版本:

{
  "_id": "_design/tagcount",
  "_rev": "1-d14c9d06e652ad23df1044ffbca9d85f",
  "views": {
    "count": {
      "reduce": "_count",
      "map": "function (doc) {\n  if(doc.type== 'post') { \n    for(var i = 0, l= doc.tags.length; i < l; i++) { emit(doc.tags[i], 1); } } \n}"
    }
  },
  "language": "javascript"
}
{
“_id”:“_设计/标记计数”,
“修订版”:“1-d14c9d06e652ad23df1044ffbca9d85f”,
“意见”:{
“计数”:{
“减少”:“\u计数”,
“映射”:“函数(doc){\n如果(doc.type='post'){\n for(var i=0,l=doc.tags.length;i
此外,还需要指定reduce:

http://localhost:5984//_design//_view/?limit=20&reduce=true&group=true


注意:用它们的实际值替换它们。

有没有办法让它们退货?因此,首先返回使用较多的“标记”吗?实际上,在map和reduce中的排序仅按键进行。除了内存排序之外,您还可以尝试Mango查询。有没有办法让它们按顺序返回?因此,首先返回使用较多的“标记”吗?实际上,在map和reduce中的排序仅按键进行。除了内存排序之外,您还可以尝试Mango查询。