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