使用Mongoose执行非'$ set'更新

时间:2013-04-17 19:25:24

标签: mongodb mongoose database

Mongoose文档指出,任何模型更新都是使用'$ set'自动发送的:

var query = { name: 'borne' };
Model.update(query, { name: 'jason borne' }, options, callback)

// is sent as

Model.update(query, { $set: { name: 'jason borne' }}, options, callback)

但我想执行传统的Mongo更新,实际上,使用提供的值重置文档。但我似乎无法使用Mongoose找到任何简单的方法。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用本机驱动程序update来获取传统行为:

Model.collection.update.update(query, {name: 'jason borne'}, options, callback);

请记住,执行此操作时,不会执行Mongoose基于架构的类型转换。

答案 1 :(得分:1)

您可以使用覆盖选项。它在文档中提到 - http://mongoosejs.com/docs/api.html#update_update

Overwite Option from mongoose docs