MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour la collection MongoDB à l'aide de $toLower

MongoDB n'a pas de concept de $toLower comme une commande. La solution est d'exécuter un gros for boucle sur les données et publie les mises à jour individuellement.

Vous pouvez le faire dans n'importe quel pilote ou depuis le shell :

db.myCollection.find().forEach(
  function(e) {
    e.UserName = e.UserName.toLowerCase();
    db.myCollection.save(e);
  }
)

Vous pouvez également remplacer la sauvegarde par une mise à jour atomique :

db.myCollection.update({_id: e._id}, {$set: {UserName: e.UserName.toLowerCase() } })

Encore une fois, vous pouvez également le faire à partir de n'importe quel pilote, le code sera très similaire.

EDIT :Remon soulève un bon point. Le $toLower La commande existe dans le cadre de l'infrastructure d'agrégation, mais cela n'a rien à voir avec la mise à jour. La documentation pour la mise à jour est ici.