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

Hvordan $sætter man dynamisk et underdokumentfelt i mongodb?

Fandt ud af det.

Grundlæggende skal du konstruere et 'pladsholder'-objekt af det underdokument, du forsøger at opdatere, før du kører forespørgslen, som sådan:

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

});

Dette opdaterer alle felter, der allerede eksisterer, og opretter felt/værdi-parret, hvis det ikke allerede eksisterede.




  1. Node.js + Mongoose virker lokalt, men ikke på Heroku

  2. Java Client til at forbinde ElasticCache Redis Cache Node

  3. JavaScript tildeler ikke et element til objektet

  4. MongoDB:Trækker flere tilfældige dokumenter fra en samling