Bạn phải xây dựng $set
của mình công cụ sửa đổi theo chương trình:
var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };
Và sau đó sử dụng modifier
làm tham số thứ ba trong findAndModify
của bạn gọi.
Bạn cũng có thể muốn xem xét việc thay đổi companies
là một mảng thay vì một đối tượng được nhúng.
Node.js 4.x Cập nhật
Bây giờ bạn có thể sử dụng cú pháp thuộc tính được tính toán để thực hiện việc này trực tiếp trong đối tượng theo nghĩa đen:
collection('users').findAndModify(
{username: usern},
[['_id', 'asc']],
{$set:{['companies.' + companyid]: { desksmemberships:[] }}},
{new: true},
function(){...});