0
我想用mongoose定义一个mongo模式。我需要创建一个引用用户的'Event Schema'。所以我用用户Schema的引用ObjectId填充'users'字段。不过,我还需要在该用户属性上添加一些特定于该事件的额外字段。因此,如下所示:在引用另一个模式加上额外字段的mongo模式中定义一个属性
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var EventSchema = new Schema({
name: String,
date: Date,
users: [{
profile: {
type: Schema.ObjectId,
ref: 'User'
},
RankNumber: Number,
bibNumber: Number
}],
published: Boolean
});
mongoose.model('Event', EventSchema);
但这不起作用。我不确定最好的方式去做我想要达到的目标。
所以,如果我有一个构造函数,例如:
function User(bib, rank, profile) {
this.bib = bib;
this.rank = rank;
this.profile = profile;
}
,然后我调用构造函数并传递一个用户ID为配置文件属性,MongoDB的将创建一个新的ID字段。我得到一个像这样的JSON响应:
{
"name": "Event name",
"_id: "mongoid",
"users": [
{
"bibNumber": "278",
"rankNumber": "21",
"profile": "users mongo _id number",
"_id": "a new mongo _id"
}
]
}
我需要填充配置文件字段。但是,下面的不会起作用:。
Event.find()填充( '用户')执行(函数(ERR,事件){....
“这行不通”请精确 – Vinz243 2014-08-29 09:38:53
我已经编辑了问题,见上面 – StujayH 2014-08-29 10:42:36
你可以尝试'填充(“users.profile”)' – Vinz243 2014-08-29 10:48:43