[英]Defining a property on mongo schema referencing another schema plus extra fields
我試圖使用貓鼬定義一個mongo模式。 我需要創建一個“事件模式”,在其中引用用戶。 因此,我使用用戶架構的引用ObjectId填充“ users”字段。 但是,我還需要在該用戶屬性上添加一些特定於事件的額外字段。 因此,如下所示:
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()。populate('users')。exec(function(err,events){....
正如我在評論中所說,您必須使用:
Event.find(...).populate('users.profile').exec(...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.