Mongoose Populate如何不使用ObjectId数组



我正在尝试用objectId字段的数组填充mongose查询。在另一个只有一个objectId ref的字段中,工作正常。

这是我的"用户"模型:

const User = new Schema({
nome: {
type: String,
required: true
},
email: {
type:String,
required: true 
}
})
mongoose.model('users',User)

这是我的"Pedido"模型:

const Schema = mongoose.Schema
const Pedido = new Schema({
id: {
type: String,
required: true
},
cliente: {
type: Schema.Types.ObjectId, 
ref: 'clientes',
required: true 
},       
fotografos: {
type: [Schema.Types.ObjectId], 
ref: 'users'
}            
})
mongoose.model('pedidos',Pedido)

我的路由器:

router.get('/pedidos',async(req,res)=>{
var query = await Pedido.find().populate('fotografos').populate('cliente').lean().exec()
console.log(query)
res.render("admin/pedidos",{pedidos: query})
})

这是console.log中的结果:

[
{
_id: 5e8e3bd16c57021f682b8e81,
fotografos: [],
cliente: {
_id: 5e8ccceea8a28146d86f4cac,
nome: 'Neymar',
email: 'neymar@ney.com',
__v: 0
},
__v: 0
}
]

fotografos字段(数组(返回为空。clients字段返回已填充的值。

有人能帮我吗?

您可以使用此代码

fotografos:[{
type: [Schema.Types.ObjectId], 
ref: 'users'
}]          

**Then do Populate**

最新更新