mysql - 为什么元数据 _id 和 _rev 在值中?

标签 mysql json couchdb

在使用多年的 MySQL 后刚刚接触 CouchDB。为什么我在返回所有记录的 View 中的值映射中获取元数据 _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 (以及其他几个地方)不在值中显示这些字段。

这并没有真正阻碍我的项目工作,但我不明白为什么会发生这种情况。是因为我设置 View 或进行查询的方式吗?

最佳答案

CouchDB 需要 _id_rev 值。第一个,_id (uuid),必须确保数据库中文档的唯一性,第二个,_rev (修订版),必须确保多个进程尝试编辑同一文档时不会发生冲突。

这些字段是必填

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

关于mysql - 为什么元数据 _id 和 _rev 在值中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18939360/

相关文章:

python - CouchDB-Python 检索文档

oracle - 从关系数据库到 Couch DB 的数据同步

MySQL SELECT * 在 Unicode 上失败

php - 如何将复选框添加到数据表以用于删除所选行?

javascript - Jquery 多个提交按钮

php - .getJSON() 中的 jsoncallback 参数有什么用?

curl - Couchdb https/ssl 在本地工作,但当我尝试从远程客户端连接时超时

mysql - 无法在 my.ini 文件/(my.cfn 文件)中将自动提交设置为 0

php - 从 mysql 查询中获取键值

java - Jackson - Java bean 到 JSON 字符串 : uppercase variable converted into lowercase in JSON