Mongoose Populate 如何不使用 ObjectIds 数组?

How can Mongoose Populate not working with Array of ObjectIds?

我正在尝试使用 objectId 字段数组填充猫鼬查询。 在另一个具有单个 objectId ref 的字段中工作正常。

那是我的 "User" 模特:

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 字段(数组)正在返回空。 客户字段 returns 填充。

有人可以帮我解决这个问题吗?

您可以使用此代码...

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


**Then do Populate**