MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Fare riferimento a un altro schema in Mongoose

Sembra che il metodo popola sia quello che stai cercando. Per prima cosa apporta una piccola modifica allo schema del tuo post:

var postSchema = new Schema({
    name: String,
    postedBy: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
    dateCreated: Date,
    comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});

Quindi crea il tuo modello:

var Post = mongoose.model('Post', postSchema);

Quindi, quando fai la tua query, puoi popolare i riferimenti come questo:

Post.findOne({_id: 123})
.populate('postedBy')
.exec(function(err, post) {
    // do stuff with post
});