如何在猫鼬中填充对象数组?

时间:2020-08-07 09:54:24

标签: node.js mongodb mongoose

我的架构如下:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

如果要填充用户,但仅选择某些字段(例如,用户名):

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