首先,我创建了猫鼬模式:

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){});

09-11 17:37