Você teria que construir seu
$set
modificador programaticamente:var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };
E então use
modifier
como o terceiro parâmetro em seu findAndModify
ligar. Você também pode considerar alterar as
companies
para ser uma matriz em vez de um objeto incorporado. Atualização do Node.js 4.x
Agora você pode usar a sintaxe de propriedade computada para fazer isso diretamente no literal do objeto:
collection('users').findAndModify(
{username: usern},
[['_id', 'asc']],
{$set:{['companies.' + companyid]: { desksmemberships:[] }}},
{new: true},
function(){...});