Tengo una colección llamada Usuario, que contiene los campos firstName y secondName. Pero los datos están en mayúsculas.
{ firstName: 'FIDO', secondName: 'JOHN', ... }Queria saber si es posible hacer el campo a camello caso.
{ firstName: 'Fido', secondName: 'John', ... }Puede utilizar una función auxiliar para obtener la respuesta deseada.
function titleCase(str) { return str.toLowerCase().split(' ').map(function(word) { return word.replace(word[0], word[0].toUpperCase()); }).join(' '); } db.User.find().forEach(function(doc){ db.User.update( { "_id": doc._id }, { "$set": { "firstName": titleCase(doc.firstName) } } ); });Ejecute una operación de actualización con canalización agregada de la siguiente manera:
const titleCase = key => ({ $concat: [ { $toUpper: { $substrCP: [`$${key}`,0,1] } }, { $toLower: { $substrCP: [ `$${key}`, 1, { $subtract: [ { $strLenCP: `$${key}` }, 1 ] } ] } } ] }); db.User.updateMany( {}, [ { $set: { firstName: titleCase('firstName'), secondName: titleCase('secondName') } } ] )