2010-09-25 3 views
3

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

+0

Могу ли я уточнить этот вопрос? У вас есть куча документов в базе данных, которая выглядит следующим образом: { ..., SomeField: «какое-то значение», ... } И вы хотите изменить «SomeField» на всех документов быть «newFieldName» без потери значений. Это то, о чем вы спрашиваете? –

+0

Теги, вероятно, представляют собой массив, [CouchDB, Redis]. Например, я хочу переименовать все теги «CouchDB» на «couch-db». –

ответ

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