MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come impostare dinamicamente un campo di un documento secondario in mongodb?

Ho capito.

In sostanza, devi costruire un oggetto "segnaposto" del documento secondario che stai tentando di aggiornare prima di eseguire la query, in questo modo:

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);

});

Questo aggiorna tutti i campi già esistenti e crea la coppia campo/valore se non esisteva già.