Digamos que estoy tratando de desarmar todos los campos foo en una colección donde foo: 'bar'.
Collection.update({foo:'bar'}, {$unset:{foo:1}});
Quiero intentar usar https://atmospherejs.com/percolate/migrations .
Mi pregunta es sobre cómo se haría para revertir eso en una función down .
El selector para {foo:'bar'} ya no coincidirá con nada ya que esos campos se eliminan.
Lo único que se me ocurre es algo como
#1. Guarde todos los _ids en algún lugar primero
const idsOfFoosToBeUnset = Collection.find({foo:'bar'},{fields: {_id:1}}).fetch().map(doc => doc._id); fs.writeFileSync('idsOfFoosToBeUnset.json', JSON.stringify(idsOfFoosToBeUnset), 'utf-8'); Función down real
const idsToBeReset = JSON.parse(fs.readFileSync('idsOfFoosToBeUnset.json', 'utf-8'); Collection.update({_id: {$in:idsToBeReset }}, {$set: {foo: 'bar'}}); Simplemente no soy fanático de tener que guardar los _ids en algún lugar y luego tener que volver a importar en la función de down .
¿Alguien más piensa en algo más limpio?