Nodejs Mongo insert into subdocument - dynamic fieldname

{username:'me', companies:{"yourcompany":{...}}

I want to insert a company into a user record (user collection), to make:

{username:'me', companies:{ "yourcompany":{...}, "mycompany":{...} }

But the name is dynamic..

var companyid = "mycompany";

.collection('users').findAndModify(
{username: usern}, 
[['_id', 'asc']], 
{$set:{companies:{companyid: { desksmemberships:[] }}}},    
{new: true}, function(){...}

Gives this.. {username:'me', companies:{ "yourcompany":{...}, "companyid":{...} }

How do I do this?

You'd have to build up your $set modifier programmatically:

var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };

And then use modifier as the third parameter in your findAndModify call.

You may also want to consider changing companies to be an array instead of an embedded object.