2014-11-03 33 views
1

蒙戈填充我试着去填充某些用户信息到物品上查询

我试着去填充某些用户信息到物品上查询

exports.articleByID = function(req, res, next, id) { 
    Article.findById(id).populate('user', 'displayName', 'email').exec(function(err, article) { 
     if (err) return next(err); 
     if (!article) return next(new Error('Failed to load article ' + id)); 
     req.article = article; 
     next(); 
    }); 
}; 

即时得到错误

MissingSchemaError:架构不是招没有注册模型“电子邮件”。

任何想法??

这里是架构

'use strict'; 

/** 
* Module dependencies. 
*/ 
var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

/** 
* Article Schema 
*/ 
var ArticleSchema = new Schema({ 
    created: { 
     type: Date, 
     default: Date.now 
    }, 
    title: { 
     type: String, 
     default: '', 
     trim: true, 
     required: 'Title cannot be blank' 
    }, 
    content: { 
     type: String, 
     default: '', 
     trim: true 
    }, 
    user: { 
     type: Schema.ObjectId, 
     ref: 'User' 
    } 
}); 

mongoose.model('Article', ArticleSchema); 

回答

1

populate第三个参数是要使用的人口,覆盖什么模式中指定型号的名称。

假设email你是从用户的文档要一个领域,包括在第二个参数来代替:

exports.articleByID = function(req, res, next, id) { 
    Article.findById(id).populate('user', 'displayName email').exec(...