sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur $ställer man dynamiskt ett underdokumentfält i mongodb?

Fick reda på det här.

I huvudsak måste du konstruera ett "platshållare"-objekt för underdokumentet du försöker uppdatera innan du kör frågan, så här:

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

});

Detta uppdaterar alla fält som redan finns och skapar fält/värdeparet om det inte redan fanns.




  1. Hur flyttar jag en tailable markör med awaitdata till slutet så att jag bara får nya uppdateringar

  2. Redis serialisering prefixet med extra sträng

  3. Hur man installerar Apache CouchDB 2.3.0 i Linux

  4. MongoDB hanterar inte aggregering med allowDiskUsage:True