Mi sembra logico per me di fare qualcosa di simile al seguente:Qual è il modello corretto per gli schemi nidificati in 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]
});
poi in seguito. . .DO qualcosa di simile al seguente:
var question = new Question({
question: 'Wut?',
users: users //where users is an array of instances of a user model of the UserSchema
});
Qui si aspetterebbe la sezione utenti della domanda per essere popolato con avatar, e-mail, firstnames e lastnames. . Comunque, dal momento che gli utenti/avatar hanno già _id, questi non sono persistenti.
- L'eliminazione di ogni _id dall'utente/avatar sembra stupida.
- L'impostazione esplicita di ciascun utente/avatar sembra inefficiente.
- Passando a un tipo misto, inserisce TUTTO dentro e richiede markModified.
Qual è lo schema corretto per questo tipo di schemi?
Grazie!
Populate colpisce il database con una query aggiuntiva e non consente la selezione incompleta dei campi dall'altra raccolta. Penso che [sottodoc] (http://mongoosejs.com/docs/subdocs.html) siano più appropriati qui. – mtsr