View couchdb替换字符串在临时视图中工作,但在永久视图中不工作

View couchdb替换字符串在临时视图中工作,但在永久视图中不工作,view,mapreduce,couchdb,View,Mapreduce,Couchdb,我正在编写一个coucdhdb视图,其中省略了字符串中的单位(“秒”或“秒”),并在发出值之前将其转换为数字。我无法控制数据的存储方式 我的观点是这样的: "map" : "function(doc) { if (doc['Elapsed Time']){ var x = +doc['Elapsed Time'].replace(/ sec.*/, ""); emit([doc.User, doc.Date], x); } 它在临时视图中正常工作,但

我正在编写一个coucdhdb视图,其中省略了字符串中的单位(“秒”或“秒”),并在发出值之前将其转换为数字。我无法控制数据的存储方式

我的观点是这样的:

"map" : "function(doc)
  {
    if (doc['Elapsed Time']){
      var x = +doc['Elapsed Time'].replace(/ sec.*/, "");
      emit([doc.User, doc.Date], x);
    }
它在临时视图中正常工作,但在尝试使用curl放置它时,我遇到以下错误:{“error”:“bad_request”,“reason”:“invalid UTF-8 JSON”}

如果我试图在Futon的永久视图中直接保存视图,它会告诉我: JSON.parse:对象中的属性值后面应为“,”或“}”, 但是所有的{}匹配,我几乎在所有地方都放了“,”,但没有任何效果


在临时视图中进行测试时,是否有一些特殊字符或其他我必须在永久视图中避免的东西是我不需要的?

不要为此编写正则表达式,只需使用函数即可

你就这样做吧

“映射”:“函数(doc)”{
如果(文件[‘运行时间’]){
emit([doc.User,doc.Date],parseInt(doc['appeased Time'],10));
}
}"

注意:我编写了
parseInt(doc['appeased Time'],10)
,其中10是您应该始终定义的基数。

不要为此编写正则表达式,只需使用函数即可

你就这样做吧

“映射”:“函数(doc)”{
如果(文件[‘运行时间’]){
emit([doc.User,doc.Date],parseInt(doc['appeased Time'],10));
}
}"

注意:我写了
parseInt(doc['appeased Time'],10)
其中10是您应该始终定义的基数。

好了。您必须在永久视图中转义“/”和引号。(显然不是临时的)你只是想从一个包含数字的字符串中得到数字吗?好的,明白了。您必须在永久视图中转义“/”和引号。(显然不是临时的)您只是想从包含数字的字符串中获取数字吗?