您必须以
$set编程方式构建修改器:
var modifier = { $set: {} };modifier.$set['companies.' + companyid] = { desksmemberships:[] };然后
modifier用作
findAndModify调用中的第三个参数。
您可能还需要考虑更改
companies为数组而不是嵌入式对象。
Node.js 4.x更新
现在,您可以使用计算属性语法直接在对象文字中执行此操作:
collection('users').findAndModify( {username: usern}, [['_id', 'asc']], {$set:{['companies.' + companyid]: { desksmemberships:[] }}}, {new: true}, function(){...});


