我正在尝试使用couchdb作为消息存储,并希望报告消息大小.
理想情况下,阅读_size属性会很好.在最坏的情况下,我可以检查整个文档的JSON的字符串长度.我甚至可能希望将大小用作视图键.
您认为记录文档大小的最佳方法是什么?为什么您认为该方法最好?
Rob*_*son 10
你可以看一看;
function (doc) {
emit(doc._id, JSON.stringify(doc).length);
}
Run Code Online (Sandbox Code Playgroud)
您可以发出HEAD请求:
$ curl -X HEAD -I http://USER:PASS@localhost:5984/db/doc_id
HTTP/1.1 200 OK
Server: CouchDB/1.1.1 (Erlang OTP/R14B03)
Etag: "1-c0b6a87a64fa1b1f63ee2aa7828a5390"
Date: Tue, 17 Jan 2012 21:32:43 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 740047
Cache-Control: must-revalidate
Run Code Online (Sandbox Code Playgroud)
Content-Length标头包含文档的长度(以字节为单位).这非常快,因为您不需要下载完整的文档.
但有一点需要注意:Content-Length是文档的utf-8版本的字节数(参见Content-Type标题); String.length是字符串中16位utf-16 代码单元的数量.
也就是说,他们正在计算不同的东西,字节与代码单元,文件的不同编码,utf-8与utf-16.
| 归档时间: |
|
| 查看次数: |
1672 次 |
| 最近记录: |