これは、mongooseバージョン4.5で導入された仮想データによって実行できます。そのためには、マングーススキーマで仮想フィールドを定義する必要があります。
var GallerySchema = new mongoose.Schema({
name: String,
objectId: {
type: mongoose.Schema.Types.ObjectId
},
});
GallerySchema.virtual('user', {
ref: 'User',
localField: 'objectId',
foreignField: '_id'
});
検索クエリを実行するときは、ユーザーを入力するだけです。
Gallry.find({_id: galleryId}).populate('user','firstName lastName').exec(function(error, gallery) {
console.log(error);
console.log(gallery);;
});
上記のコードはプログラムでテストされていません。タイプミスがある可能性があります。以下のリンクでマングース仮想データの詳細を確認できます
http://mongoosejs.com/docs/populate.html