Sie müssten Ihr $set
aufbauen Modifikator programmgesteuert:
var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };
Und dann verwenden Sie modifier
als dritter Parameter in Ihrem findAndModify
anrufen.
Sie können auch in Betracht ziehen, companies
zu wechseln ein Array anstelle eines eingebetteten Objekts sein.
Node.js 4.x-Update
Sie können jetzt die berechnete Eigenschaftssyntax verwenden, um dies direkt im Objektliteral zu tun:
collection('users').findAndModify(
{username: usern},
[['_id', 'asc']],
{$set:{['companies.' + companyid]: { desksmemberships:[] }}},
{new: true},
function(){...});