【问题标题】:How can I populate array of objects in mongoose?如何在猫鼬中填充对象数组?
【发布时间】:2023-03-16 18:13:01
【问题描述】:

我的架构如下:

const mock =  new Schema({
   category:...,
   name:....,
   doneBy: [{
       type:mongoose.Schema.Types.ObjectId,
       ref: 'User'
   }]
})

查询:'doneBy' 属性是已完成任务的特定用户的数组。当我使用 console.log 时,它仅将 id 打印为“doneBy: [id1,id2,id3......]”。现在我想填充这些 id 以获取特定用户的信息。请分享方法。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您可以像这样在查询中填充它:

    mock.find({...}).populate('doneBy')
    

    如果您想填充用户但只选择某些字段(例如,用户名):

    mock.find({...}).populate({ path: 'doneBy', select: { username: 1 } }) // _id will also be returned by default
    

    【讨论】:

    • @Kowshik 先生,我的查询与您在第一行中提到的完全一样:mock.findOne({}).populate ('doneBy').exec((err,data)=>{console.log (data)})........但是出现错误。
    猜你喜欢
    • 1970-01-01
    • 2021-08-16
    • 2014-11-25
    • 2019-11-27
    • 1970-01-01
    • 2020-10-13
    • 2017-04-29
    • 2020-11-24
    相关资源
    最近更新 更多