在CouchDB更新函数中返回_rev和_id?

在CouchDB更新函数中返回_rev和_id?,couchdb,Couchdb,有没有办法从“更新”功能将新创建的文档的“修订”和“id”字段返回到客户端?您可以,但是解决方案并不完美 您已经知道更新功能中的文档\u id。您可以自己计算,也可以使用用户输入,或者如果希望让CouchDB自动生成ID,则使用req.uuid值 function(doc, req) { // An example _update function. var id; id = "Whatever"; // Pick one yourself, or... i

有没有办法从“更新”功能将新创建的文档的“修订”和“id”字段返回到客户端?

您可以,但是解决方案并不完美

您已经知道更新功能中的文档
\u id
。您可以自己计算,也可以使用用户输入,或者如果希望让CouchDB自动生成ID,则使用
req.uuid

function(doc, req) {
    // An example _update function.
    var id;

    id = "Whatever";   // Pick one yourself, or...
    id = req.query.id; // Let the user specify via ?id=whatever, or...
    id = req.body;     // Let the user specify via POST or PUT body, or...
    id = req.uuid;     // Use a random UUID from CouchDB

    var doc = {"_id":id, "other_stuff":"Whatever other data you have"};
    log("Document _id will be: " + doc._id);
    return([doc, {json: {"success":true, "doc":doc}]);
}
遗憾的是,您不知道show函数中的
\u rev
。但是,CouchDB将在HTTP头
X-coach-Update-NewRev
中将其发送到客户端

例如:

HTTP/1.1 201 Created
X-Couch-Update-NewRev: 1-967a00dff5e02add41819138abb3284d
Server: CouchDB/1.1.0 (Erlang OTP/R14B03)
Date: Tue, 12 Jul 2011 06:09:34 GMT
Content-Type: application/json
Content-Length: 14

{"stuff":true}