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

Comment définir dynamiquement un champ de sous-document dans mongodb ?

J'ai compris.

Essentiellement, vous devez construire un objet "espace réservé" du sous-document que vous essayez de mettre à jour avant d'exécuter la requête, comme ceci :

var projectID = 'JKS78678923SDFD678';

var key = 'Three';
var value = 'Three';

var placeholder = {};
placeholder['options.' + key] = value;

Teams.findAndModify({
    query: {
        projectID:mongojs.ObjectId(projectID)
    },
    update: {
        $set : placeholder
    },
    upsert: true,
    multi: false,
    new: true
},
function(error, result, lastErrorObject){

    console.log(result);

});

Cela met à jour tous les champs qui existent déjà et crée la paire champ/valeur si elle n'existait pas déjà.