How to select specific field in nested populate in mogoose

前端 未结 2 1865
囚心锁ツ
囚心锁ツ 2021-02-04 06:02

here is my schema:

var UserSchema = new Schema({
    email: String,
    name: String,
    city: String,
    username: String,
    profilePic: String,
    phoneNo         


        
2条回答
  •  感动是毒
    2021-02-04 06:36

    Use select property in populate as:

    User.populate(user, { path: 'shortList.flat.project', model: 'Project', select: 'name' })
    

    This will give you name of project only.

    To give specify fields which you don't want you can zero as:

    User.populate(user, { path: 'shortList.flat.project', model: 'Project', select: { 'name': 0, 'Floor': 0, 'flats': 0, 'towers': 0,} }
    

    This works for me.

    and if you are doing two level populations:

    we can simply do it as:

    populate('project.tower', 'name project flats');
    

    for a simple populate to get specific feilds:

    populate('project', 'name')
    

提交回复
热议问题