2011-07-12 3 views

Répondre

8

Vous pouvez, cependant la solution n'est pas parfaite.

Vous connaissez déjà le document _id dans la fonction de mise à jour. Soit vous le calculez vous-même, soit vous utilisez l'entrée utilisateur, ou si vous souhaitez laisser CouchDB produire un identifiant automatiquement, utilisez la valeur 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}]); 
} 

Malheureusement, vous ne connaissez pas le _rev dans la fonction show. Cependant, CouchDB l'enverra au client dans l'en-tête HTTP X-Couch-Update-NewRev.

Par exemple:

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} 
Questions connexes