【问题标题】:Differences betwen findById and load?findById 和 load 的区别?
【发布时间】:2015-05-08 05:17:47
【问题描述】:

FindById(id,callBack)Load(id,callback) 的主要区别是什么?

更多细节:

我是 MEAN 堆栈 Web 开发的新手,所以我只是在玩 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 上找不到任何文档。

【问题讨论】:

    标签: mongodb mongoose mean-stack


    【解决方案1】:

    load 是 Article 模型的静态方法,其作用与 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);
    };
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多