CouchDB视图-列出函数性能命中率?

CouchDB视图-列出函数性能命中率?,couchdb,Couchdb,很多人都知道couchdb视图的响应如下 {"rows":[ {"key":"1","value":{"Col1":"Some Value"}}, {"key":"2","value":{"Col1":"Another Value"}}, ]} 好吧,我想把它整理一下 [{"key":"1","value":{"Col1":"Some Value"}}, {"key":"2","value":{"Col1":"Another Value"}}] 我正在考虑使用“列表函数”来整理响

很多人都知道couchdb视图的响应如下

{"rows":[
  {"key":"1","value":{"Col1":"Some Value"}},
  {"key":"2","value":{"Col1":"Another Value"}},
]}
好吧,我想把它整理一下

[{"key":"1","value":{"Col1":"Some Value"}},
  {"key":"2","value":{"Col1":"Another Value"}}]
我正在考虑使用“列表函数”来整理响应,但我想知道这样做的潜在性能开销??值得吗。。。或者我应该考虑改变所有的代码来处理不同的响应?? 谢谢
Damo

列表函数在单独的进程(
couchjs
)中运行,该进程通过标准i/o连接到couchdb。数据被序列化到JSON或从JSON与此通道通信。换句话说,所有行都将被序列化并发送到
couchjs
;而
couchjs
将返回结果


因此,列表函数将添加(至少)O(n)延迟来接收结果。对于较小的(我说少于10000个文档,但这取决于您的需要)查看结果,这是非常值得的。对于非常多的行,您可能会发现升级客户端的好处。

我使用JSON_XS格式化结果,然后使用curl、awk和其他unix实用程序重新格式化结果。在这种情况下,漂亮地打印JSON没有帮助,因此:


curl-s-s-compressed-X获取“您的视图”\url'| sed-e'/^{“行”://'-e'/^]}/]/'

,就像我当时想的那样。不理想,因为有时您会传递“文档”,而其他人传递“文档视图”。因此,您的代码需要同时处理这两个问题。最后,我决定使用list函数将所有值推送到一个数组,然后发送JSOn响应。感谢您的帮助。列表函数可以使用
provides()
返回不同的内容类型,可能基于
req.query
对象中给定的参数。