Mongo DB Join - Populate De Require Kullanımı
-
Selamlar, Elimde bir proje var. Hiç bilmediğim bir MongoDB projesine girdim, işin içinden cikamadim.
Yapmak istediğim aşağıda ki populate (media'nin) 'de kayit yok ise o record hiç gelmesin. (Düz sql de ki, Where is not null)
Burası zorunlu alan olsun:
.populate({ path: 'media', select: '_id name' })
Bunun nasil oldugunu bilen varsa bi sağlam hayır dua ederim.
Kod:let items = await DB.Webinar.find(query, { availableTimeRange: 0, slotIds: 0, hashWebinar: 0 }).populate({ path: 'categories', select: '_id name alias' }).populate({ path: 'media', select: '_id name' }).sort(sort).skip(page * take).limit(take).exec();Model:
/* eslint prefer-arrow-callback: 0 */
const schema = new Schema({tutorId: {type: Schema.Types.ObjectId,index: true,ref: 'User'},name: {type: String,default: ''},alias: {type: String,index: true},categoryIds: [{type: Schema.Types.ObjectId,index: true,ref: 'Category'}],mediaIds: [{type: Schema.Types.ObjectId,index: true,ref: 'Media'}],mainImageId: {type: Schema.Types.ObjectId,ref: 'Media',default: null},createdAt: {type: Date},updatedAt: {type: Date},
.........},{timestamps: {createdAt: 'createdAt',updatedAt: 'updatedAt'},toJSON: {virtuals: true},toObject: {virtuals: true}});schema.virtual('media', {ref: 'Media',localField: 'mediaIds',foreignField: '_id',justOne: false});schema.virtual('mainImage', {ref: 'Media',localField: 'mainImageId',foreignField: '_id',justOne: true});
module.exports = schema; -
-
@dalyKadir lan göt, adam soruna cevap vermiş dönüp bakmamişsin. Bana look up olayını o anlattı :)