javascript - 为什么我的猫鼬数组没有填充,甚至没有存储值?
问题描述
问题
我知道 Stack 上有很多关于这个问题的类似问题,但我无法用这些帖子解决它。
我正在创建一个简单的论坛应用程序。我有 2 条创建论坛和子论坛的路线。一个论坛可以有多个子论坛。一个子论坛被分配给一个论坛。
我的论坛架构如下所示:
const mongoose = require("mongoose");
const forumSchema = new mongoose.Schema({
title: String,
subTitle: String,
posts: [{ type: mongoose.Schema.Types.ObjectId, ref: "Post" }],
subForums: [{ type: mongoose.Schema.Types.ObjectId, ref: "Subforum" }]
});
const Forum = mongoose.model("Forum", forumSchema);
module.exports = Forum;
子论坛的架构:
const mongoose = require("mongoose");
const subForumSchema = new mongoose.Schema({
title: String,
subTitle: String,
posts: [{ type: mongoose.Schema.Types.ObjectId, ref: "Post" }],
forum: { type: mongoose.Schema.Types.ObjectId, ref: "Forum" }
});
const SubForum = mongoose.model("Subforum", subForumSchema);
module.exports = SubForum;
如果我创建一个新论坛并将其保存在数据库中。当然还没有子论坛。
然后我创建一个这样的子论坛(我提供刚刚创建的论坛的 id req.body.forum
):
router.post("/newSub", verify, async (req, res) => {
// TODO: Only admin can do this
const subForum = new SubForum({
title: req.body.title,
subTitle: req.body.subTitle,
forum: req.body.forum
});
try {
await subForum.save();
res.send(subForum);
} catch (err) {
res.status(400).send(err);
}
});
我得到了它已经创建的回复。新的子论坛如下所示:
但是当我搜索所有论坛并想用它的子论坛填充它时,它就行不通了。在 Robomongo 中,它看起来像这样:
所以可以清楚的看到数组中没有子论坛。
有什么问题,我该如何解决?
解决方案
我在您的代码中没有看到您实际上将subforum
id 推送到forum.subforum
数组的任何地方。创建subforum
并保存后,您还必须将其推subforum id
送到forum.subforums
数组中并保存。
推荐阅读
- reactjs - 在打印之前和之后更改状态以仅在打印时显示
- reactjs - 如何为列表的每一项添加独立的加载状态?
- rust - 无法从匹配臂返回对成员的可变引用
- debugging - 无法在 x64dbg 中修改程序集
- azure - Azure WebApp for Containers 中的日志记录方法
- web-scraping - 属性错误:“NoneType”对象没有属性“find_all”
- python-3.x - 我想混合 4 个音频文件并将最终混合的音频文件添加到 moviepy 中的视频中。那可能吗?
- highcharts - customEvents.js 和 H.removeEvents 冲突
- android - 如何确保 UI 布局适合 Unity 中每个受支持的设备?
- graphql - AWS Amplify:变量输入包含未为输入对象类型定义的字段名称