我想获取所有的用户有创建的地方使用虚拟填充


const getAllUsers = async (req, res) => {

try {
await User.find({}).populate('place').exec(function(error, data) {
console.log(data.places)
console.log(data)
res.json("ok")
});        

} catch (error) {
console.log(error)
res.status(500).send(error)
}
}

user的虚定义是这样的

userSchema.virtual('places',{
ref: "Place",
localField: "id",
foreignField: "creator",

})

当我为一个用户使用findById时,它工作但当我使用find时,它不工作

问题是虚拟的名称不一样。= places

在这里的文档中我可以看到:名称应该是相同的https://mongoosejs.com/docs/populate.html

await User.find({}).populate('place').exec(function(error, data) {

需要修改为:

await User.find({}).populate('places').exec(function(error, data) {