较小的发布视图为couchdb

时间:2015-08-26 05:00:41

标签: couchdb

有什么好处
emit([doc.key1,doc.key2], 1);

VS

emit([doc.key1,doc.key2], doc);

并通过?include_docs = true

调用doc

这实际上会保存在couchdb空间(视图大小更短)吗?此外,由于未集成doc,因此CPU会受到影响 在发射?

优点和缺点是什么,何时使用其中一个。

1 个答案:

答案 0 :(得分:3)

需要使用emit(..., 1);来减少_sum_count_stats等功能,因为它们需要一个数字才能使用。

使用emit(..., doc);将真正复制文档,因此它将存储在磁盘上的视图文件中。

使用emit(..., null);不会复制文档,但由于couchdb知道哪个docemit()的来源,因此?include_docs=true可以“重新附加”。基于密钥的查找速度稍慢,但不会造成任何伤害。

有关此主题的更多信息,请参阅the wonderful documentation

我的建议:

  • 需要缩减时使用emit(..., 1),不使用时emit(..., null)
  • 极少数情况emit(..., doc);有好处。

一个很酷的技巧是链接视图中的其他文档而不是当前docemit(..., { _id : doc.commentId })