krl*_*krl 11 mongoose mongodb node.js
我有以下Mongoose模型:
var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
facebook: {
name: String,
email: String,
customerId: String
}
});
var User = mongoose.model('User', userSchema);
Run Code Online (Sandbox Code Playgroud)
当我使用更新本文档的一部分时 findByIdAndUpdate
User.findByIdAndUpdate(id, {
$set: {
facebook: {
name: name
}
}
});
Run Code Online (Sandbox Code Playgroud)
name得到更新,同时email并customerId得到去除(未设置?).
我没有找到这个记录.
有没有办法只更新特定的文档属性findByIdAndUpdate?
Viv*_*pai 17
FindByIdAndUpdate实际上是通过文档ID发出mongodb findAndModify更新命令.
关键是你要设置一个对象来覆盖旧对象.如果要更新字段,则需要修改更新对象.
User.findByIdAndUpdate(id, {
$set: {
'facebook.name':name
}
});
Run Code Online (Sandbox Code Playgroud)
这将仅更新名称字段,保留旧对象的其余字段.
| 归档时间: |
|
| 查看次数: |
6166 次 |
| 最近记录: |