FindById(id,callBack)
和Load(id,callback)
之间的主要区别是什么?
更多详情:
我是MEAN堆栈网站开发的新手,所以我只是在玩Mean.io:
此代码由Mean.io(controllers / article.js)生成:
Article.load(id, function(err, article) {
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
我想用findById做同样的结果吗'详细记录在:Model.findById
Article.findById(id, function (err, article){
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
它有效,但我想知道它们之间的主要区别,奇怪的是我无法找到关于mongoose docs的任何文档。
答案 0 :(得分:2)
load
是文章模型的静态方法,它与findOne
完全相同,并且defined in the schema如下:
ArticleSchema.statics = {
load: function (id, cb) {
this.findOne({ _id : id }).populate('user').exec(cb);
}
};
findById
方法也调用findOne
方法:
Model.findById = function findById (id, fields, options, callback) {
return this.findOne({ _id: id }, fields, options, callback);
};