2017-10-02 7 views
0

est là façon ajouter un nouveau champ et sa valeur dans existé tous les documents couchdb, comme suit je veux ajouter "emailType": "true" dans le document existant pour les e-mails docType , ne sais pas comment puis-je utiliser updatehandler pour y parvenir, merciest là façon ajouter un nouveau champ/valeur dans couchdb document existant

{ 
     "_id": "37fbfee963e9a989becbe9fe746891eb", 
     "_rev": "5-28bb00c72c0807772051d8d71b67eda0", 
     "docType":"emails", 
     "emails": [ 
      { 
       "emailAddress": "aaaa", 
       "emailType": "true" 
      } 
    } 

voici ce que je reçois le document électronique existait

function(doc) { 
    if (doc.emails && doc.docType == "emails") { 
     var emailsLength = doc.emails.length; 
     for (var i = 0; i < emailsLength ; i++) { 
     emit(doc.emails[i].emailAddress, doc); 
    } 
    } 
} 
+1

Possible copie de [Comment mettre à jour l'enregistrement/champ d'un document dans couchdb] (https://stackoverflow.com/questions/4132702/how-to-update-a-documents-record-field-in-couchdb) – Flimzy

Répondre

1

Malheureusement, vous ne pouvez pas modifier plusieurs documents à la fois une mise à jour fonction. Pour cela, vous devrez écrire votre propre script qui itère sur tous les documents émis par la vue que vous avez décrite.

Voici how to create update functions et how to call them dans les docs. Cependant, ils ne sont pas le seul moyen de modifier les documents. Peut-être que l'opération bulk_docs vous est utile.