sql >> Database >  >> NoSQL >> MongoDB

Hoe dynamisch $ een subdocumentveld in mongodb in te stellen?

Dit bedacht.

In wezen moet u een 'placeholder'-object maken van het subdocument dat u probeert bij te werken voordat u de query uitvoert, zoals:

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

});

Dit werkt alle velden bij die al bestaan ​​en maakt het veld/waarde-paar aan als het nog niet bestond.




  1. Welke MongoDB-typen worden niet bewaard door mongoimport/mongoexport?

  2. Terugdraaien in MongoDB voorkomen?

  3. Mongo-ID's leiden naar enge URL's

  4. Fout:het update-bewerkingsdocument moet atomaire operatoren bevatten bij het uitvoeren van updateOne