Recentemente precisei fazer uma parte que me deu um pouco de cabeça, não pela dificuldade em si, mas pela falta de documentação da função.

Precisei alterar um tipo de objeto na coleção inteira do mongoDB.

Veja os exemplos:

//inteiro para string
db.temp.find({name: {$exists:true}}).forEach( function(x) {
    db.temp.update({_id: x._id}, {$set: {name: x.name.toString()}});
});

//string para data
db.temp.find({name: {$exists:true}}).forEach( function(x) {
    db.temp.update({_id: x._id}, {$set: {name: ISODate(x.name}});
});

//string para inteiro
db.temp.find({name: {$exists:true}}).forEach( function(x) {
    db.temp.update({_id: x._id}, {$set: {name: NumberInt(x.name)}});
});

Apenas criamos uma função para percorrer toda coleção e procurar o campo específico alterando o seu tipo base.

Legal, né? 🙂

Um grande abraço!

Não deixem de passar na nossa página do Facebook!