【问题标题】:Connecting Mongoose Schema to one another将 Mongoose Schema 相互连接
【发布时间】:2017-01-13 05:42:38
【问题描述】:

我有一个用户配置文件的现有架构,如下所示:

const userSchema = new mongoose.Schema({
  email: { type: String, unique: true, lowercase: true },
  password: { type: String },
  name: {
    first: { type: String, required: true },
    last: { type: String, required: true }
  }
});

我的问题是:我是否可以创建另一个模式来保存事件注册的属性(例如用户支付的通行证类型、地址、联系电话等)特定信息,并将其连接到 userSchema ?或者将所有这些信息放入userSchema 会更有效吗?

示例注册架构:

const registrationSchema = new mongoose.Schema({
  pass: { type: String },
  address: { type: String },
  phone: { type: String },
  paid: { type: Boolean, default: false },
  shirt: { type: Boolean, default: false }
});

谢谢。

【问题讨论】:

    标签: node.js mongodb mongoose schema


    【解决方案1】:

    三种情况

    1. 实体之间的关系是 1:1(您的情况?) - 将它们放在相同的模式中。我们很幸运没有使用关系数据库。

    2. 关系为 1:N,但每个父级的子级数量可预测且不会很大 - 也将它们置于同一架构中。

    例子2:

    一个。用户角色。

    b.用户访问过的国家/地区。

    1. 关系为 1:N,每个父级可以有任意数量的子级,并且无法预测 - 使用不同的架构。

    3 的例子:

    一个。用户订单。

    b.用户位置历史。

    【讨论】:

    • 感谢您富有洞察力的解释。对于任何给定财产中的孩子数量(可能少于 6 个),我将自己限制在一个模式中。
    猜你喜欢
    • 2018-02-18
    • 2013-06-19
    • 2018-10-22
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多