猫鼬 'populate()' 未填充
Mongoose 'populate()' not populating
所以我正在使用 MEARN 堆栈构建一个简单的应用程序。
问题是我想将用户的信息(姓名、电子邮件等...)放入产品的 'user' 属性 中,但它不起作用(邮递员请求 return 500 status Server error) ,我不知道我做错了什么,在此先感谢!我的代码片段:
我的用户模型:
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')
}
})
您必须指定路径:populate({path:'user'})
尝试:
router.get('/:id', async (req,res) => {
try {
const product = await Product.findById(req.params.id).populate({path:'user'})
res.json(product)
} catch (err) {
res.status(500).send('Server Error')
}
})
您的 ref
值需要与模型 user
引用的名称相匹配。所以你需要把它改成:
user:{
type: mongoose.Schema.Types.ObjectId,
ref: 'user'
},
所以我正在使用 MEARN 堆栈构建一个简单的应用程序。
问题是我想将用户的信息(姓名、电子邮件等...)放入产品的 'user' 属性 中,但它不起作用(邮递员请求 return 500 status Server error) ,我不知道我做错了什么,在此先感谢!我的代码片段:
我的用户模型:
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')
}
})
您必须指定路径:populate({path:'user'})
尝试:
router.get('/:id', async (req,res) => {
try {
const product = await Product.findById(req.params.id).populate({path:'user'})
res.json(product)
} catch (err) {
res.status(500).send('Server Error')
}
})
您的 ref
值需要与模型 user
引用的名称相匹配。所以你需要把它改成:
user:{
type: mongoose.Schema.Types.ObjectId,
ref: 'user'
},