есть ли способ добавить новое поле/значение в существующий документ CouchDB

есть ли способ добавить новое поле и его значение во все существующие документы CouchDB, например, я хочу добавить «emailType»: «true» в существующий документ для электронных писем docType, не уверен, как я могу использовать updatehandler для достижения этого, спасибо

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

вот что я получаю существующий документ электронной почты

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);
    }
  }
}

person Jamesjin    schedule 02.10.2017    source источник


Ответы (1)


К сожалению, вы не можете одновременно изменять несколько документов с помощью функции обновления. Для этого вам нужно будет написать свой собственный скрипт, который выполняет итерацию по всем документам, созданным описанным вами представлением.

Вот как создавать функции обновления и как их вызывать в документах. Однако они не являются единственным способом изменения документов. Возможно, bulk_docs операция полезна для вас.

person aleknaui    schedule 05.10.2017