为什么Mongodb更新工作但是猫鼬没有?

时间:2016-01-29 09:24:16

标签: node.js mongodb mongoose

当我查询monodb shell时,我能够更新文档。 这是我使用的mongodb命令: db.users.update({name:"bob"}, {$set: {email:"newEmail@gmail.com} })

但是当我尝试用mongoose更新它时,它不起作用。 我错过了什么?

这是mongoose中的代码:

//创建用户架构

var userSchema = mongoose.Schema({
  name: String,
  email: String
}, {collection: "users"});

//创建模型

var userModel = mongoose.model("userModel", userSchema);

//更新文件

userModel.update({name:"bob"}, {$set: {email:"newEmail@gmail.com"}} );

2 个答案:

答案 0 :(得分:1)

您应该等待回调以查看操作是否成功

userModel.update({ name: "bob" }, 
                 {$set: { email:"newEmail@gmail.com" }},
                 function (err, user) {
                     if (err) return handleError(err);
                     res.send(user);
                 });

mongoose异步工作,您应该等待回调中的响应。还有一种同步方法可以做到这一点,但不推荐使用node来阻止堆栈。

答案 1 :(得分:1)

如果您不需要回调结果

,则可以使用此功能
userModel.update({name:"bob"}, {$set: {email:"newEmail@gmail.com"}}).exec();