Tendrías que construir tu $set
modificador programáticamente:
var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };
Y luego usa modifier
como el tercer parámetro en su findAndModify
llamar.
También puede considerar cambiar companies
ser una matriz en lugar de un objeto incrustado.
Actualización de Node.js 4.x
Ahora puede usar la sintaxis de propiedad calculada para hacer esto directamente en el objeto literal:
collection('users').findAndModify(
{username: usern},
[['_id', 'asc']],
{$set:{['companies.' + companyid]: { desksmemberships:[] }}},
{new: true},
function(){...});