嘿,伙计们,我有一个这个为创建列表:
文档用户Json示例
{
"__v" : 3,
"_id" : ObjectId("5396e11c13e345570ae174f1"),
"created" : ISODate("2014-06-10T10:42:36.925Z"),
"name" : "Project",
"projects" : [
ObjectId("5396db4f3458c64f09e23ef8"),
ObjectId("53982440de337a4e0b3013a4")
]
}
模型用户
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var User = new Schema({
name : String,
projects: {
type: Schema.Types.ObjectId,
ref: 'Project'
},
created : Date
});
module.exports = mongoose.model('User', User);
模型项目
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Project = new Schema({
name : String,
key : String,
description : String
});
module.exports = mongoose.model('Project', Project);
路线/Index.js
exports.index = function (req, res) {
User.find(function (err, result) {
res.render('index', {
title: 'List',
user: result
});
}).populate('projects');
};
Index.ejs
//foreach
<%= user.projects.name %>
但是我没有定义,为什么?我想知道项目的名称
您应该在开始执行find
查询之前调用populate
:
User.find().populate('projects').exec(function (err, result) {
res.render('index', {
title: 'List',
user: result
});
});