Мне кажется логичным сделать что-то вроде следующего:
var AvatarSchema = new Mongoose.Schema({
type: String,
url: String
});
var UserSchema = new Mongoose.Schema({
avatars: [AvatarSchema],
email: String,
name: String,
salt: String,
token: String
});
var ThinUserSchema = new Mongoose.Schema({
avatars: [AvatarSchema],
email: String,
firstname: String,
lastname: String,
});
var QuestionSchema = new Mongoose.Schema({
question: String,
users: [ThinUserSchema]
});
Затем позже.,.do что-то вроде следующего:
var question = new Question({
question: 'Wut?',
users: users //where users is an array of instances of a user model of the UserSchema
});
Здесь я бы ожидал, что раздел пользователей вопроса будет заполнен аватарами, электронными письмами, firstnames и lastnames.,. Поскольку пользователи/аватары уже имеют _id, они не сохраняются.
- Удаление каждого из _id от пользователя/аватаров кажется глупым.
- Явная настройка каждого пользователя/аватара кажется неэффективной.
- Переключение на смешанный тип, добавляет ВСЕ там и требует markModified.
Каков правильный шаблон для этих видов схем?
Спасибо!