Logiczne wydaje mi się zrobić coś jak następuje:Jaki jest właściwy wzorzec dla zagnieżdżonych schematów w Mongoose/MongoDB?
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]
});
Następnie później. . uruchamiać coś jak poniżej:
var question = new Question({
question: 'Wut?',
users: users //where users is an array of instances of a user model of the UserSchema
});
Tutaj spodziewałbym sekcja użytkowników w rachubę być wypełniane avatarów, e-maile, firstnames i lastnames. . .Jednak ponieważ użytkownicy/awatary mają już _id, nie są one zachowywane.
- Usunięcie każdego _id z użytkownika/awatarów wydaje się głupie.
- Jawnie konfigurowanie każdego użytkownika/awatara wydaje się nieefektywne.
- Przełączenie na rodzaj mieszany, umieszcza WSZYSTKO tam i wymaga znacznika.
Jaki jest właściwy wzór dla tego rodzaju schematów?
Dzięki!
Populate trafia do bazy danych z dodatkowym zapytaniem i nie pozwala na niepełny wybór pól z innej kolekcji. Myślę, że [subdocs] (http://mongoosejs.com/docs/subdocs.html) są bardziej odpowiednie tutaj. – mtsr