mongodb - 猫鼬'populate()'没有填充
问题描述
所以我用 MEARN 堆栈构建了一个简单的应用程序。
问题是我希望将用户信息(姓名、电子邮件等)放入产品的“用户”属性中,但它不起作用(邮递员请求返回 500 状态服务器错误),我不'不知道我做错了什么,提前谢谢!我的代码片段:
我的用户模型:
const mongoose = require('mongoose')
const UserSchema = mongoose.Schema({
name : {
type: String,
required: true
},
email : {
type: String,
required: true,
unique: true
},
password : {
type: String,
required: true
},
date : {
type: Date,
default: Date.now
},
})
module.exports = mongoose.model('user',UserSchema)
我的产品型号:
const mongoose = require('mongoose')
const ProductSchema = mongoose.Schema({
user:{
type: mongoose.Schema.Types.ObjectId,
ref: 'users'
},
name : {
type: String,
required: true
},
description : {
type: String,
required: true
},
quantity : {
type: Number,
required: true
},
price : {
type: Number,
required: true
},
date : {
type: Date,
default: Date.now
},
})
module.exports = mongoose.model('product',ProductSchema)
和我的要求:
router.get('/:id', async (req,res) => {
try {
const product = await Product.findById(req.params.id).populate('user')
res.json(product)
} catch (err) {
res.status(500).send('Server Error')
}
})
解决方案
您的ref
值需要与模型user
引用的名称相匹配。因此,您需要将其更改为:
user:{
type: mongoose.Schema.Types.ObjectId,
ref: 'user'
},
推荐阅读
- r - 面板的淡入淡出以指示正在进行的时间
- javascript - JS 异步目录列表
- firebase - Flutter:如何在控制台中显示 Firebase Auth 异常?
- c# - 运行所有测试后,NUnit Selenium webdriver 未关闭
- reactjs - React material-ui TextField,输入为白色
- python - 熊猫:考虑多种条件正确过滤数据框列
- python - Python中类对象的属性错误 - 朴素贝叶斯
- python - 如何将 url 参数传递给视图以供其他类函数和模板使用
- android - 关闭 PdfRenderer 是否重要以及何时关闭
- android-studio - 引起:groovy.lang.MissingMethodException:没有方法签名,android studio