Mongoosejs 刷新文档

urb*_*ban 8 javascript mongoose mongodb node.js

假设我有一个文档,例如: var doc = Model.findOne({name:"name"});

现在,如果文档通过数据库的另一个连接进行编辑,则 doc 不会保存正确的信息。我确实需要它,所以我必须从数据库“刷新”或“重新下载”它。有没有办法只用对象“doc”来做到这一点?

Joh*_*yHK 6

假设doc包含要刷新的文档实例,您可以执行此操作以对其进行一般刷新:

doc.model(doc.constructor.modelName).findOne({_id: doc._id},
    function(err, newDoc) {
        if (!err) {
            doc = newDoc;
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

但是,最好不要持久/缓存超出您对它们的直接需求的 Mongoose 文档实例。缓存_id您需要快速访问的不可变文档,而不是文档本身。