1

我正在编写一个 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: expected ',' or '}' after property value in object, but all the {} match, and I've dinked with几乎在任何地方都放置“,”,但没有任何效果。

在临时视图中测试时是否有特殊字符或我必须在永久视图中避免的其他内容?

4

1 回答 1

1

而不是为此编写正则表达式,只需使用parseInt()完全符合您要求的函数。

你就这样做吧。

"map": "function(doc) {
    if (doc['Elapsed Time']) {
      emit([doc.User, doc.Date], parseInt(doc['Elapsed Time'], 10));
    }
}"

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

于 2012-08-29T19:41:25.580 回答