【发布时间】:2021-04-12 04:43:20
【问题描述】:
这是我的架构:
1.记录架构:
const mongoose = require('mongoose')
const RecordsSchema = new mongoose.Schema({
Title: { type: String, required: true },
postedby: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'user'
}],
Author: { type: String, required: true },
ISBN: { type: String, required: true },
Review: { type: String },
SelectedFile: { type: String },
Likes: { type: Number, default: 0 },
Date: { type: Date, default: Date.now() }
});
module.exports = Records = mongoose.model('record', RecordsSchema, 'record');
这是用户架构:
const mongoose = require('mongoose')
const userSchema = new mongoose.Schema({
username: { type: String },
email: { type: String, required: true, unique: true },
records: [{
type: [mongoose.Schema.Types.ObjectId],
ref: 'record'
}],
password: { type: String, required: true },
Date: { type: Date, default: Date.now(), immutable: true }
});
module.exports = User = mongoose.model('user', userSchema, 'user');
获取记录的快捷途径:
router.get('/postedby/', (req, res) => {
Records.findOne()
.populate('postedby')
.exec()
.then(post => {
if (!post) {
return res.status(400).json({ msg: 'Add Posts' });
}
else return res.json(post);
}).catch(err => console.error(err))
});
路线结果:
{
"postedby": [],
"Likes": 0,
"_id": "5fed8c12a4fb2c1e98ef09f6",
"Title": "New Age",
"Author": "Situma Prisco",
"ISBN": "23422",
"SelectedFile": "",
"Review": "",
"Date": "2020-12-31T08:30:10.321Z",
"__v": 0
},
我在填充的用户字段(posteddby) 上得到一个空白数组。 请帮忙,我做错了什么?是的,我确实有一个用户登录
【问题讨论】:
-
使用“Records.findByID()”你得到同样的结果吗?
标签: node.js mongoose mongoose-schema mern mongoose-populate