Node.js - Mongoose - 在这种情况下,我应该如何分配多个多对一关系?

Posted

技术标签:

【中文标题】Node.js - Mongoose - 在这种情况下,我应该如何分配多个多对一关系?【英文标题】:Node.js - Mongoose - How should I assign multiple Many-to-One relationships in this case? 【发布时间】:2015-05-20 13:07:44 【问题描述】:

在这种情况下,我需要分配多个多对一关系,如下所示:

var portfolioschema = new Schema(
    volatility         :  Number,
    bonds              :  
        percentage          :   type: Number, default: 0.6 ,
        USA                 :  
            percentage           :   type: Number, default: 0.7 ,
            treasury             :  
                percentage            :   type: Number, default: 0.4 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            ,
            municipal            :  
                percentage            :   type: Number, default: 0.2 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            ,
            corporate            :  
                percentage            :   type: Number, default: 0.4 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            
        ,
        international       :  
            percentage           :   type: Number, default: 0.3 ,
            developed            :  
                percentage            :   type: Number, default: 0.7 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            ,
            emergent        :  
                percentage            :   type: Number, default: 0.3 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            
        
    ,
    stocks          :  
        percentage          :   type: Number, default: 0.4 ,
        USA                 :  
            percentage           :   type: Number, default: 0.7 ,
            largeCaps            :  
                percentage            :   type: Number, default: 0.4 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            ,
            mediumCaps           :  
                percentage            :   type: Number, default: 0.4 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            ,
            smallCaps            :  
                percentage            :   type: Number, default: 0.2 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            
        ,
        international       :  
            percentage           :   type: Number, default: 0.3 ,
            developed            :  
                percentage            :   type: Number, default: 0.7 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            ,
            emergent        :  
                percentage            :   type: Number, default: 0.3 ,
                securities            :  [  type: ObjectId, ref: 'Security'  ]
            
        
    ,
    _goal           :   type: ObjectId, ref: 'Goal' 
);

var securitySchema = new Schema(
    name               :   type: Date, required: true ,
    avgReturn          :  Number,
    avgRisk            :  Number,
    percentage         :  Number
);

但是,在我看来,简单地使用 Array 数据类型而不是 [ type: ObjectId, ref: 'Security' ] 会更容易。

我不确定我应该做什么。任何人都会知道执行此操作的适当方法吗?谢谢!

【问题讨论】:

Array 数据类型是什么?为什么你认为它与[] 数据类型不同? 我认为没有什么不同。我的疑问是我应该只使用Array 还是[ type: ObjectId, ref: 'Security' ] 【参考方案1】:

你不应该在猫鼬模式中写出Array这个词。这是一个相关的答案。 How to define object in array in Mongoose schema correctly with 2d geo index

因此,您的问题的简短回答是:使用[ type: ObjectId, ref: 'Security' ]

【讨论】:

对不起,您说的相关答案对我没有帮助。它建议改用Arrays...为什么建议使用[ type: ObjectId, ref: 'Security' ]?你能说得更具体点吗?【参考方案2】:

如果您的数组将仅由您的 Security 对象组成,您应该使用 [ type: ObjectId, ref: 'Security' ]

【讨论】:

以上是关于Node.js - Mongoose - 在这种情况下,我应该如何分配多个多对一关系?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:如何在 mongoose.js 中执行 count 命令?

??node.js????Mongoose??????

在 Node JS 中填充 Mongoose

node.js + express.js:使用 mongodb/mongoose 处理会话

?? Mongoose?Node.js?MongodB ?????????????

node.js,mongodb,mongoose,html 我如何插入数据(在 index.html 中)?