si j'ai deux schémas comme:
var userSchema = new Schema({
twittername: String,
twitterID: Number,
displayName: String,
profilePic: String,
});
var User = mongoose.model('User')
var postSchema = new Schema({
name: String,
postedBy: User, //User Model Type
dateCreated: Date,
comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});
J'ai essayé de les relier comme dans l'exemple ci-dessus mais je ne savais pas comment le faire. Finalement, si je pouvais faire quelque chose comme ça, ma vie serait très facile
var profilePic = Post.postedBy.profilePic
On dirait que la méthode de peuplement est ce que vous recherchez. Commencez par apporter de petites modifications à votre schéma de publication:
var postSchema = new Schema({
name: String,
postedBy: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
dateCreated: Date,
comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});
Alors fabrique ton modèle:
var Post = mongoose.model('Post', postSchema);
Ensuite, lorsque vous effectuez votre requête, vous pouvez renseigner les références de la manière suivante:
Post.findOne({_id: 123})
.populate('postedBy')
.exec(function(err, post) {
// do stuff with post
});
Addendum: Personne n'a mentionné "Populate" - cela vaut vraiment la peine de perdre votre temps et votre argent à regarder la méthode de peuplement Mongooses: explique également le référencement de documents croisés.