具有嵌套模式的猫鼬模式?

时间:2021-01-31 21:27:04

标签: mongoose mongoose-schema

我使用 Mongoose 或 MongoDB 的经验几乎为零。我正在修一门关于它的课程,但课程内容确实是为了建立一个带有评论等的博客或网页。所以它让我试图自己解决问题。我已经阅读了 Mongoose 文档,但我仍然不确定应该采用什么方法来实现我的目标。

将此假文档视为期望输出: enter image description here

可能有任意数量的子句(顶级数字,如 1、2、3 等)任意数量的子条款(二级数字,如 2.1 和 2.3 等)任意数量的有序或无序列表插入任何地方。

这个想法是有一个用户表单来创建这样的文档。

我正在努力弄清楚如何为此构建架构。到目前为止,这是我的架构和模型代码。

    const mongoose = requireA("mongoose");

const procedureSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  number: {
    type: Number,
    required: true,
  },
  revision: {
    type: Number,
    required: true,
  },
  originator: {
    type: String,
    required: true,
  },
  approver: {
    type: String,
    required: true,
  },
  procedure: [
    { clauseNumber: Number, clauseHeading: String, clauseParagraph: String, },
  ],
});

const Procedure = mongoose.model("Procedure", procedureSchema);

module.exports = Procedure;

如您所见,第一个条目只是基本信息,例如 revision number 等。当我到达 procedure 时,我开始认为数组是可行的方法。但后来我想这最终会成为一堆嵌套数组,也许这不是一个好的解决方案。

这应该作为子文档完成吗?如果子文档是进入这里的方式,我希望得到解释,因为此时 Mongoose 文档并没有在我脑海中响起。

我不是在寻找“为我编写代码”的人。我真的只是希望有经验的人可以为我指明正确的方向。

我讨厌 Stack Overflow 的一件事是人们说我的问题是重复的等等。我已经看过了,但我并不认为这是一个已经得到回答的问题。如果是这样,请解释。

预先感谢您的帮助。

0 个答案:

没有答案