首先我创建了猫鼬模式:
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){});
这三个都没有奏效!!! 请帮忙..
答案 0 :(得分:1)
根据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){});