sql >> Databasteknik >  >> NoSQL >> MongoDB

Nodejs Mongo infoga i underdokument - dynamiskt fältnamn

Du måste bygga upp din $set modifierare programmatiskt:

var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };

Och använd sedan modifier som den tredje parametern i din findAndModify ring.

Du kanske också vill överväga att byta companies att vara en array istället för ett inbäddat objekt.

Node.js 4.x-uppdatering

Du kan nu använda den beräknade egenskapssyntaxen för att göra detta direkt i objektet literal:

collection('users').findAndModify(
    {username: usern}, 
    [['_id', 'asc']], 
    {$set:{['companies.' + companyid]: { desksmemberships:[] }}},    
    {new: true},
    function(){...});


  1. Hur beräknar man tidsstämpelskillnaden i mongodb (i timmar)?

  2. Sortering av aggregering addToSet-resultat

  3. returförfrågan baserad på datum

  4. Hur man får alla nycklar i Redis