Node.js Mongoose创建字段中项数未知的文档的最佳实践
我左右环顾了一下,写了一些演示代码,写了一些测试来实现一个学校管理系统 我想从那些更习惯mongoose开发的人那里了解的是,如何以一种方式创建这个模式,从而能够从这个文档中添加我想要的尽可能多的地址和联系费,这将是最佳实践 我提出了自己的解决方案,但我不知道这是否是最优雅、最可行的方法,我想征求经验丰富的人的意见 我应该为地址、电子邮件和电话号码创建单独的模型吗 我创建了这个模式。它仍然有一些伪代码,但是给出一般的想法是可以的Node.js Mongoose创建字段中项数未知的文档的最佳实践,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我左右环顾了一下,写了一些演示代码,写了一些测试来实现一个学校管理系统 我想从那些更习惯mongoose开发的人那里了解的是,如何以一种方式创建这个模式,从而能够从这个文档中添加我想要的尽可能多的地址和联系费,这将是最佳实践 我提出了自己的解决方案,但我不知道这是否是最优雅、最可行的方法,我想征求经验丰富的人的意见 我应该为地址、电子邮件和电话号码创建单独的模型吗 我创建了这个模式。它仍然有一些伪代码,但是给出一般的想法是可以的 var student = { name: String,
var student = {
name: String,
surname: String,
currentClass: {
type: mongoose.Schema.Types.ObjectId,
ref: "Classes"
},
birthday: {
year: Number,
month: Number,
day: Number
},
address: [{
name: String,
zip: Number,
address: String,
city: String,
state: String,
complement: String
}]
accountable: {
name: String,
surname: String,
email: [{
type: String,
required: true,
lowercase: true
}],
phone: [String, String]
}
我的解决方案是,通过使用html,根据用户的请求,通过单击propper按钮中的墨迹,创建一个新的“电子邮件”或“地址”字段。这将生成一个新的输入字段,其名称遵循如下模式:
email1、email2、email3、email4
因此,当用户发送数据时,如果我们正在创建一个新的学生,我会首先用数据创建数组并将其发送给mongoose
在更新的情况下,我会获取已经创建的电子邮件,并使用
newEmails.concat(old_emails)
将其添加到新数组中。要设计数据库,有许多情况:
1对1,1对多,多对多。一对一:您应该将强对象放在另一个对象中,例如:
一个人只能有一个passport,那么我们应该将passport对象放在person对象中。 一对多,一对多3箱。
一对少数:少数小于100个对象,则应将少数作为列表添加到一个对象中,例如: 一个人可以有多个地址,如上面的示例所示。
一对多:多就是千,那么你应该把多的主键放在一个对象内的列表中。 一对多:然后不要执行上一个解决方案,而是在多个对象的每个对象中添加一的主解决方案。
最后,多对多:您应该将它们作为列表放在两侧。
检查以下参考资料:
另外,对于这部分
phone:[String,String]
,您应该将其制作成phone:[String]
非常感谢。。。当时我对猫鼬和数据建模还相当陌生。我用一对几表示地址和电话号码,。。。我还更改了前端,将express模板引擎替换为angular。。。现在,再次修改事物的角度方面,更新为角度2/4。