假设,
var friend = { firstName: 'Harry', lastName: 'Potter' };您有两种选择:
更新内存中的模型,然后保存(纯javascript array.push):
person.friends.push(friend);person.save(done);
要么
PersonModel.update( { _id: person._id }, { $push: { friends: friend } }, done);我总是尽可能地尝试第一种选择,因为它会尊重猫鼬为您带来的更多好处(钩子,验证等)。
但是,如果您同时进行大量写入操作,则会遇到竞争状况,最终会导致讨厌的版本错误,从而使您无法每次更换整个模型并失去之前添加的朋友。因此,仅在绝对必要时才使用前者。



