许多人都知道来自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"}}]
我正在考虑使用“列表函数”来整理响应,但我想知道做这样的事情的潜在性能开销?值得吗?或者我应该考虑更改所有代码来处理不同的响应吗?
由于 达莫
答案 0 :(得分:5)
列表函数在单独的进程(couchjs
)中运行,该进程通过标准i / o连接到couchdb。数据被串行化到JSON或从JSON进行通信以与该通道进行通信。换句话说,您的所有行都将被序列化并发送到couchjs
;并且couchjs
会将结果发回。
因此,列表函数将添加(至少)O(n)延迟以接收结果。对于小(我说少于10,000个文件,但这取决于你的需要)查看结果,这是非常值得的。对于非常大量的行,您可能会发现升级客户端的好处。
答案 1 :(得分:0)
我使用JSON_XS格式化结果,然后使用curl,awk和其他unix实用程序重新格式化结果。在这种情况下,漂亮打印JSON没有帮助:
curl -s -S --compressed -X GET 'your_view_url' | sed -e '/^{"rows"://' -e '/^]}/]/'