为什么Mongodb更新工作,但mongoose不会?

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

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

这是mongoose的代码:

//创build用户架构

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

//创build一个模型

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

//更新文档

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

你应该等待callback,看看操作是否成功

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

mongooseasynchronous工作,你应该等待callback中的响应。 还有一个synchrone的方式来做到这一点,但不build议您node堆栈。

你可以使用这个,如果你不需要callback的结果

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