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(){...});