Массовое переименование CouchDb

Например, у меня есть сообщения с именами тегов, и я решил переименовать один из тегов. Массовое обновление, когда я должен знать, что ревизия не совсем подходит. Лучше бы это было как-то интегрировано.


person appqui-platform    schedule 25.09.2010    source источник
comment
Можно уточнить вопрос? У вас есть куча документов в вашей базе данных, которые выглядят следующим образом: { ..., someField: 'some value', ... } И вы хотите изменить someField во всех документах на newFieldName без потери значений. Это то, что вы спрашиваете?   -  person Eggplant Jeff    schedule 28.11.2010
comment
Теги, вероятно, представляют собой массив [CouchDB, Redis]. Я хочу, например, переименовать все теги CouchDB в coach-db.   -  person appqui-platform    schedule 30.11.2010


Ответы (1)


Ознакомьтесь с Costco, который предоставляет простой интерфейс, позволяющий написать небольшую функцию, которая применяется ко всем вашим документы для их изменения.

Вы бы написали простую функцию, например:

function (doc) {
  // ignore documents without tags
  if (!doc.tags) return doc;

  for (var i = 0, len = doc.tags.length; i < len; i += 1) {
    // convert tag misspelled "couch-db" to real name "CouchDB"
    if (doc.tags[i] === "couch-db") doc.tags[i] = "CouchDB";
  }
  return doc;
}
person natevw    schedule 03.01.2011