548 votes

Mise à jour de MongoDB champ à l'aide de la valeur d'un autre champ

Dans MongoDB, est-il possible de mettre à jour la valeur d'un champ à l'aide de la valeur d'un autre champ? L'équivalent de SQL serait quelque chose comme:

UPDATE Person SET Name = FirstName + ' ' + LastName

Et MongoDB pseudo-code serait:

db.person.update( {}, { $set : { name : firstName + ' ' + lastName } );

264voto

Carlos Barcelona Points 713

Vous devez parcourir. Pour votre cas spécifique:

db.person.find().forEach(
    function (elem) {
        db.person.update(
            {
                _id: elem._id
            },
            {
                $set: {
                    name: elem.firstname + ' ' + elem.lastname
                }
            }
        );
    }
);

108voto

Niels van der Rest Points 11802

Vous ne pouvez pas consulter le document lui-même dans une mise à jour (encore). Vous aurez besoin de parcourir les documents et la mise à jour de chaque document à l'aide d'une fonction. Voir cette réponse pour un exemple, ou cette un pour le côté serveur, eval().

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X