часть коллекций на предмет замены данных.
Скрипт для mongoshell не поддерживает async/await.
Правильным ли будет запустить цикл по массву коллекций и в цикле сделать bulkWrite?
function start (array) {
for (var index = 0; index < array.length; index++) {
const [collection, fields] = array[index]
const col = collection.split(':')
const query = {}
const params = {}
fields.forEach(field => {
if (field.replaceWith === '$unset') {
if (!params.$unset) params.$unset = {}
params.$unset[field.source] = ""
} else {
if (!params.$set) params.$set = {}
params.$set[field.source] = field.replaceWith
}
if (field.query) Object.assign(query, field.query)
})
const updateMany = {
filter: query,
update: params,
}
console.log('Updating ${collection}...')
// db.getCollection(col[0]).bulkWrite([{ updateMany }])
}
}
start(Object.entries(collections))
вполне
Обсуждают сегодня