为什么元数据中的元数据_id和_rev?

时间:2013-09-22 01:13:59

标签: mysql json couchdb

经过多年的MySQL后,CouchDB的新功能。为什么我在视图中的值映射中获取元数据_id和_rev返回所有记录?这是我的观点:

"views": "{
    "all": "{
        "map": "function (doc) {
            emit(doc.date, doc)
        }"
    }"
}"

当我查询/ database / _design / id / _view / all时,我得到以下JSON:

{"total_rows":2,"offset":0,"rows":[
{"id":"b77bbd5ab73b809ca830fe4b6900506f","key":"[2013, 09, 21, 00, 00, 00]","value":{"_id":"b77bbd5ab73b809ca830fe4b6900506f","_rev":"11-b134dfe46f86c96b4f7e2cf0abb13b61","location":"Mesuk Market","product":"Traditional Pork Skewer","total_items":550,"created_at":"[2013, 09, 21, 23, 24, 06]","date":"[2013, 09, 21, 00, 00, 00]"}},
{"id":"b77bbd5ab73b809ca830fe4b69005f1e","key":"[2013, 09, 21, 00, 00, 00]","value":{"_id":"b77bbd5ab73b809ca830fe4b69005f1e","_rev":"2-ee4e464cdf5de23563c0cc6b62bc4b07","date":"[2013, 09, 21, 00, 00, 00]","created_at":"[2013, 09, 21, 23, 27, 00]","total_items":100,"product":"All Meat Skewer","location":"Mesuk Market"}}
]}

为什么我在值映射中获得_id和_rev?文档here(以及其他几个地方)不会在值中显示这些字段。

这并没有真正阻碍我在项目上的工作,但我不明白为什么会这样。它是从我设置我的视图或进行查询的方式来的吗?

2 个答案:

答案 0 :(得分:1)

_id_revspecial document fields

  • _id是数据库范围内唯一的文档ID
  • _revMVCC令牌

答案 1 :(得分:0)

CouchDB需要 _id _rev 值。第一个, _id uuid ),必须确保数据库中文档的唯一性,第二个是 _rev 修订),必须确保在多个进程尝试编辑同一文档时没有冲突。

这些字段是必填

_id 由CouchDB分配,当它不在我们尝试创建的文档中时, _rev 始终由CouchDB分配。