我可以避免" _rev"从我的couchDB条目,因为我的文档不会改变

时间:2017-02-13 16:26:44

标签: node.js couchdb

我正在使用nodejs在couchdb上工作,我要求我的文档只添加一次。我认为我的文档中不需要_rev标记。由于_rev值是长字符串而我的数据非常小,因此会增加很大的开销,最终会增加大文档的大小。我知道它是couchdb不可或缺的一部分,但在一些典型情况下它变得多余。 注意我也知道couchDB使用多版本并发控制(MVCC)。

  1. 有没有办法从Document中删除它?
  2. 我是否错过了可能在以后产生问题的重要内容?
  3. 如果不完全避免它至少可以将值减小到很小?
  4. 我的观点很简单:

    我可以输入

    " _id":" 001" "值":" 12"

    " _id":" 002" "值":" 23"

    没有" _rev":" 1-8b0b70974c6dd43edf4e07f12a9655af"

2 个答案:

答案 0 :(得分:1)

如果您不希望在下载文档时传输_rev属性,则始终可以使用here转换文档的JSON以排除此属性:

function (doc, req) {
  delete(doc._rev)
  return { json: doc }
}

这意味着您必须使用show function而不是直接获取文档,但您可以使用此方法应用其他特定于域的优化。

答案 1 :(得分:1)

在CouchDB中禁用修订是不可能的。修订是数据库的组成部分。如果您确定不想要它们,那么您可能想要使用其他数据库但是如果您使用Mongo则会存储修订版。但是这样看:如果你要求你的文件永远不会改变那么你将如何保证?修订似乎是一个完美的功能,以确保您的文档永远不会改变。不仅因为您可以阅读它们,而且因为如果您从未使用它们,那么您将无法更新任何需要更新的先前版本的文档。