node.js - 如何在两个模式 mognose node.js 之间进行参考
问题描述
我尝试在我的 MERN 应用程序 beetwen 中引用两个模式 Movie 和 Seanse。这是我的电影架构:
const Movie = mongoose.Schema({
title: {
type: String,
require: true,
},
movieDescription: {
type: String,
require: true,
},
movieImgUrl: {
type: String,
require: true,
},
seanses: [
{
type: Schema.Types.ObjectId,
ref: "Seanse",
},
],
});
export default mongoose.model("Movie", Movie);
这是我的 Sease 架构:
const Seanse = mongoose.Schema({
date: {
type: Date,
require: true,
},
hour: {
type: String,
require: true,
},
movie: {
type: Schema.Types.ObjectId,
ref: "Movie",
},
bookings: {
type: Array,
require: true,
},
});
export default mongoose.model("Seanse", Seanse);
但是当我在邮递员中请求电影时,我看到空数组,这是我获取所有电影的代码:
async findAll(req, res) {
const movies = await Movie.find().populate({
path: "seanses",
model: "Seanse",
});
return res.status(200).send({ data: movies });
},
这是我在 Postman 收到的:
{
"seanses": [],
"_id": "5f5bea1993df462974d63e66",
"title": "Hacker 5",
"movieDescription": "Lorem Ipusm",
"movieImgUrl": "https://m.media-amazon.com/images/M/MV5BZGJiZGMwMmUtMjdiZS00M2QzLWE3YjAtNTU2MjQ2ZDE3NDE1XkEyXkFqcGdeQXVyMTc5OTQwMzk@._V1_.jpg",
"__v": 0
}
当然,我之前已经创建了 sease,其中我在“电影”字段中输入了现有电影的 id
解决方案
Mongoose 总是在模型名称的末尾添加“s”,因此您应该重命名Movie
为Movies
和。Seanse
Seanses
推荐阅读
- android - 在 SharedPreferance 中使用静态最终变量会导致内存泄漏?
- laravel - PHP / Laravel 8.0:从版本 7.25 升级后,Paginator 实例上的链接方法 UI 损坏
- mysql - Nodejs - 无法在mysql2中加载环境变量
- spring-boot - 在 SpringBoot @Scheduled 中更新 Cron 表达式运行时
- php - 通过jquery从模态窗体窗口获取复选框值的值
- cortex-m - 关于 Cortex-M3 bit-banding 功能的一些问题
- google-apps-script - 从谷歌表格创建日历事件
- python - 使用卷积来导出图像边缘上的错误结果
- flutter - 如何在没有 android studio 模拟器的情况下在 VSCode 中运行颤振应用程序
- php - 如何在php中使用firebase发送带有图像和徽章的推送通知?