【问题标题】:Sails.js attribute type array in waterline mongoDB水线 mongoDB 中的 Sails.js 属性类型数组
【发布时间】:2015-09-26 13:49:09
【问题描述】:

我想创建一个如下所示的模型。用户模型具有数组类型的属性协议。我无法在水线中找到属性类型是对象数组的示例。请指教 `

module.exports = {

  attributes: {
    userName: {
      type: "string",
      unique: true,
      required: true
    },
    Name: {
      type: "string",
      required: true,
      minLength: 2
    },
    phone: {
      type: "string",
      required: true
    },
    password: {
      type: "string",
      minLength: 6

    },
    roles: {
      type: "array",
      required: true,
      enum: ['Admin', 'User']

    },
    agreements: {
       type : "array",
      agreement :{
        version : "string",
        dateSigned :"date",


      }

    },

`

【问题讨论】:

    标签: mongodb sails.js waterline


    【解决方案1】:

    使用一对多关联。

    假设你的模型是Model.js

    agreements: { collection: 'Agreement', via : 'model' }
    

    models 中创建Agreement.js

    module.exports: {
      attributes: {
        model      : { model: 'Model' },
        version    : { type: 'string' },
        dateSigned : { type: 'datetime' }
      }
    }
    

    看到这个documentation

    【讨论】:

    • 它的多对多关系。用户必须签署所有协议。除了协议模型之外,我还需要存储一些特定于特定用户和协议的额外字段。 Like (dateSigned , IP 地址和客户端机器的用户代理)。
    • 您可以创建一个模型(可能命名为 UserAgreementAgreementSignature),它与 User 具有 OneToMany 关系,与 Agreement 具有 OneToMany 关系以及您想要的属性。跨度>
    • 确实,您所需要的只是修复数据库结构和关联,因为agreement : { version : "string", dateSigned :"date" } 不是有效配置。
    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 2015-06-11
    • 2014-12-14
    • 1970-01-01
    • 2016-01-11
    相关资源
    最近更新 更多