Couchdb _design/doc/_update/push 不能作为对象工作

Posted

技术标签:

【中文标题】Couchdb _design/doc/_update/push 不能作为对象工作【英文标题】:Couchdb _design/doc/_update/push not working as object 【发布时间】:2015-11-17 18:53:11 【问题描述】:

我想使用现有的 Couchdb 文档来深度合并此请求中的一些数据

请求:: curl -H "Content-Type: application/json" -X POST http://localhost/couch/ddb/_design/data/_update/push2/cap1 -d '"51" : 5, "65" : 2'

数据库文件:: 65: [[]], 51: [[]];

更新功能:: function(doc, req) var d = req.body; for(var key in doc.x2) doc.x2[key][0].push(d[key]); ; return [doc,'added'];"

问题是包含数据的req.body 显示为String 而不是JSON object,因此无法选择值

查询的结果应该是:: 65: [[2]], 51: [[5]];

其他一切正常,期望 req.bodyString 而不是 Object

【问题讨论】:

【参考方案1】:

嗯,找到了我自己的答案。不难:

var d = req.body; >> var d = JSON.parse(req.body);d 变为 Object

【讨论】:

是的。常见的错误。 :) req.body 值可以是任何东西——不仅仅是 JSON——所以 CouchDB 不会自动解析它。很高兴你修好了!

以上是关于Couchdb _design/doc/_update/push 不能作为对象工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥 couchdb 正在寻找“_users”数据库?

CouchDB _changes-API 过滤器

Couchdb视图不适用于多个过滤器

如何限制 CouchApp 对 CouchDB 的 `_user` 表的访问?

couchdb map函数和reduce函数

CouchDB 中的 _users 数据库不允许使用 HTTP OPTIONS 方法