我想知道为什么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')
答案 0 :(得分:1)
你说“我需要在我的项目中创建一个带有rev的新文档,但是这个是否可以在这个python lib中实现,这在CouchDB本身是不可能的,所以允许你在你的lib中设置它对你的实际数据没有任何影响。
CouchDB中的_rev
由CouchDB严格管理以解决冲突,您无法将其从CouchDB设置的值更改为。 (FWIW,CouchDB允许你设置你喜欢的任何(唯一)_id
,这就是你的python lib中可写字段的原因。)