首先,我创建了猫鼬模式:
var cardSchema = mongoose.Schema({
userId: String,
imageUrl: String
})
然后我定义了模型:
var Card = mongoose.model('Card', cardSchema)
然后我创建了一张新卡:
var newCard = new Card({
userId: "bablaba"
});
然后新卡正确保存(我测试过):
newCard.save(function(err,theCard){
if(err) return console.log(err);
console.log("saved");
console.log(theCard);
})
现在,我需要更新卡中的信息。我想将imageUrl添加/插入到已保存的新卡中。
这是我尝试过的几种方法:
1。
Card.where({ _id: _id }).update({
$set: {imageUrl:"blablab"}
});
2。
Card.update(_id,{$set:{imageUrl:"balbalab"}})
3。
Card.update({_id: updateInfo._id}, {note0:updateInfo.note0, note1: updateInfo.note1},{multi:true}, function(err, numberAffected){});
这三个都不起作用!!!
请帮忙..
最佳答案
根据docs,
该操作仅在传递回调时执行。强迫
在没有回调的情况下执行(这将是不安全的写操作),我们必须
首先调用update(),然后使用exec()方法执行它。
在第一种情况下,您缺少回调函数。
Card.where({ _id: "54a108be506225c82a56848b" }).update({
$set: {imageUrl:"blablab"}
},function(e,n){
console.log(n);
});
要么,
Card.update({_id: "54a108be506225c82a56848b"},
{"imageUrl":"Hello"},
{multi:true},
function(err, numberAffected){});