constLive=newSchema({user_id:{// this one populatetype:Schema.Types.ObjectId,ref:'User',// User Schemarequired:true},title:{type:String,},category:{// this one populatetype:Schema.Types.ObjectId,ref:'Category'// Category Schema},})let vid =awaitLive.find({}).populate({path:'user_id',select:'name image -_id'}).populate({path:'category',select:'category -_id',model:Category})
"Mongoosepopulate() lets you reference documents in other collections.Population is the process of automatically replacing the specified
paths in the documentwithdocument(s)from other collection(s)."
Source: https://mongoosejs.com/docs/populate.html
// The 2nd `populate()` call below overwrites the first because they// both populate 'fans'.Story.find().populate({path:'fans',select:'name'}).populate({path:'fans',select:'email'});// The above is equivalent to:Story.find().populate({path:'fans',select:'email'});
const members =await subtable.find({party: req.body.party}).populate({path:"user_id",//subtable field which refers to your main tableselect:"fname lname",});
// populates a single objectUser.findById(id,function(err, user){const opts =[{path:'company',match:{x:1},select:'name'},{path:'notes',options:{limit:10},model:'override'}];User.populate(user, opts,function(err, user){console.log(user);});});// populates an array of objectsUser.find(match,function(err, users){const opts =[{path:'company',match:{x:1},select:'name'}];const promise =User.populate(users, opts);
promise.then(console.log).end();})// imagine a Weapon model exists with two saved documents:// { _id: 389, name: 'whip' }// { _id: 8921, name: 'boomerang' }// and this schema:// new Schema({// name: String,// weapon: { type: ObjectId, ref: 'Weapon' }// });const user ={name:'Indiana Jones',weapon:389};Weapon.populate(user,{path:'weapon',model:'Weapon'},function(err, user){console.log(user.weapon.name);// whip})// populate many plain objectsconst users =[{name:'Indiana Jones',weapon:389}]
users.push({name:'Batman',weapon:8921})Weapon.populate(users,{path:'weapon'},function(err, users){
users.forEach(function(user){console.log('%s uses a %s', users.name, user.weapon.name)// Indiana Jones uses a whip// Batman uses a boomerang});});// Note that we didn't need to specify the Weapon model because// it is in the schema's ref