我的架构如下:
const mock = new Schema({
category:...,
name:....,
doneBy: [{
type:mongoose.Schema.Types.ObjectId,
ref: 'User'
}]
})
查询:“ doneBy”属性是完成任务的特定用户的数组。当我console.log时,它仅将id打印为“ doneBy:[id1,id2,id3 ......]”。现在,我想填充这些ID以获取特定用户的信息。请分享方法。
答案 0 :(得分:0)
您可以像这样在查询中填充它:
mock.find({...}).populate('doneBy')
如果要填充用户,但仅选择某些字段(例如,用户名):
mock.find({...}).populate({ path: 'doneBy', select: { username: 1 } }) // _id will also be returned by default