sql >> Database >  >> NoSQL >> MongoDB

Nodejs Mongo invoegen in subdocument - dynamische veldnaam

Je zou je $set . moeten opbouwen modifier programmatisch:

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

En gebruik dan modifier als de derde parameter in uw findAndModify bellen.

U kunt ook overwegen om companies te veranderen om een ​​array te zijn in plaats van een ingesloten object.

Node.js 4.x-update

U kunt nu de berekende eigenschapsyntaxis gebruiken om dit rechtstreeks in het letterlijke object te doen:

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


  1. MongoDB SELECTEER COUNT GROUP BY

  2. 'Veld had een boon nodig van het type dat niet gevonden kon worden.' fout lente rustgevende API met behulp van mongodb

  3. Geneste arrays in mongoDB bijwerken via mongo-shell

  4. Sla een afbeelding op in MongoDB met Node.js/Express en Mongoose