couchdb-python:couchdb.mapping.Document类的rev属性是只读的

时间:2012-07-17 14:01:51

标签: python mapping couchdb readonly couchdb-python

我想知道为什么couchdb.mapping.Document类的rev属性是只读属性。甚至可以设置id属性,我需要在我的项目中创建一个带有rev的新文档,我从CouchDB视图中获取。我知道rev是在CouchDB中生成的,但遗憾的是创建者没有预测到这样的异常。此外,在我看来,应该有一个带有参数的Document类的get方法:ids - 它是许多文档的标识符。

@property
def rev(self):
    """The document revision.

    :rtype: basestring
    """
    if hasattr(self._data, 'rev'): # When data is client.Document
        return self._data.rev
    return self._data.get('_rev')

1 个答案:

答案 0 :(得分:1)

你说“我需要在我的项目中创建一个带有rev的新文档,但是这个是否可以在这个python lib中实现,这在CouchDB本身是不可能的,所以允许你在你的lib中设置它对你的实际数据没有任何影响。

CouchDB中的_rev由CouchDB严格管理以解决冲突,您无法将其从CouchDB设置的值更改为。 (FWIW,CouchDB允许你设置你喜欢的任何(唯一)_id,这就是你的python lib中可写字段的原因。)