如何在数组响应的所有对象中填充字段?

时间:2019-03-10 14:31:07

标签: javascript mongoose mongoose-schema mongoose-populate

我有一个用户模型:

const userSchema = new Schema({
  username: String,
  email: String,
  _id: generated
})

和项目模型:

const projectSchema = new Schema({
  owner: { type: Schema.Types.ObjectId, ref: 'User' },
  name: String,
  _id: generated
})

我正在使用一个请求来获取所有项目,然后想在每个项目的“所有者”字段中填充相应的用户(甚至更好的是其用户名)

Project.find()
  .populate('owner')
  .then((allProjects) => {
    console.log(allProjects);
    res.status(200).json(allProjects);
})

在console.log()中看到的来自find()的响应是一个对象数组,其上的填充似乎没有任何作用:

[{
  _id: 4kal5mah5lam6la2lam40am3,
  owner: 28eqo29roqi5lqmdka91ma01,
  name: Project1
 },
 {
  _id: 0akm40am593na7n4fnau25a,
  owner: 85jan5l60oq23la1p07d8q2,
  name: Project2
 }]

我尝试使用populate调用及其参数进行很多操作,但是没有任何效果。代码运行,只是不填充字段。有什么想法吗?

非常感谢!

0 个答案:

没有答案