MongooseJS会在save()上返回一个新的结果对象吗?

默认情况下,collection.save()中的MongoDB返回一个WriteResult对象,如文档中所述:

The save() returns a WriteResult object that contains the status of the insert or update operation.

但是对于Mongoose(并且我猜测节点中的基础mongodb驱动程序),您可以添加第二个参数,该参数使用刚刚插入的整个对象以及新的_id进行填充:

 var user = new User(req.body); user.save(function (err, userResult) { if (err) { log.error(err); } log.debug('User data: ', userResult); }); 

所以我的问题: userResult是否包含从Mongo检索到的数据,它是一个新的对象或者是传递的对象已经传递到save()方法,并从数据库调用合并只有一些部分数据,如生成_id和/或创builddate?

如果你看看Model.prototype.save()

https://github.com/Automattic/mongoose/blob/8cb0e35/lib/model.js#L254

它看起来像你回到你的userResult相同的模型实例( self )。