流星集合架构

时间:2017-01-04 20:01:28

标签: javascript mongodb meteor

我正在尝试为我的网站添加用户流,以便当用户创建帐户时,会记录他们的进度。必须使用默认值初始化数据。在javascript obj表示法中,我会想象它:

buyingandselling: {
        components: {
            video: {
                complete: false
            },
            exam: {
                complete: false
            },
            finish: {
                complete: false
            }
        },
        complete: false,
        next: "overheads"
    },
    overheads: {
        components: {
            video: {
                complete: false
            },
            exam: {
                complete: false
            },
            exam2: {
                complete: false
            },
            finish: {
                complete: false
            }
        },
        complete: false,
        next: "overheads"
    }

我发现很难理解如何将其转换为架构。这也只是较大模式的一小部分。

1 个答案:

答案 0 :(得分:0)

您可以使用Accounts.onCreateUser()在创建时自动将此结构添加到用户文档中。然后,您可以在进展时更新它。

Accounts.onCreateUser((options, user) => {
  user.progress = {
    { buyingandselling: {
      components: {
        video: {
          complete: false
        },
        exam: {
          complete: false
        },
        finish: {
          complete: false
        }
      },
      complete: false,
      next: "overheads"
    },
    overheads: {
      components: {
        video: {
          complete: false
        },
        exam: {
          complete: false
        },
        exam2: {
          complete: false
        },
        finish: {
          complete: false
        }
      },
      complete: false,
      next: "overheads"
    }
  };
  return user;
});

您的结构看起来有一个冗余的嵌套级别(因为每个项目只能完成或不完整),但这是建模样式首选项。