Node.js 子文档与猫鼬种群
我有以下几点意见: 用户可以登录到网站。用户可以添加/删除投票(一个有两个选项的问题)。任何用户都可以通过选择其中任何一个选项对投票发表意见 考虑到上述场景,我有三种模型-Node.js 子文档与猫鼬种群,node.js,mongodb,mongoose,crud,Node.js,Mongodb,Mongoose,Crud,我有以下几点意见: 用户可以登录到网站。用户可以添加/删除投票(一个有两个选项的问题)。任何用户都可以通过选择其中任何一个选项对投票发表意见 考虑到上述场景,我有三种模型-用户轮询选项。按照依赖关系的顺序,它们如下所示: 选项模式 轮询模式 用户架构:父架构 我如何实现这些文档之间的上述关系。猫鼬的数量是多少?它与子文档有何不同?我应该选择子文档还是使用Mongoose填充。因为MongoDb没有连接作为关系数据库,所以填充类似于隐藏连接。这只是意味着,当您拥有该用户模型并将填充投票模型时,mo
用户
轮询
选项
。按照依赖关系的顺序,它们如下所示:
选项模式
轮询模式
用户架构:父架构
我如何实现这些文档之间的上述关系。猫鼬的数量是多少?它与子文档有何不同?我应该选择子文档还是使用Mongoose填充。因为MongoDb没有连接作为关系数据库,所以填充类似于隐藏连接。这只是意味着,当您拥有该用户模型并将填充投票模型时,mongoose将执行以下操作:
由于我更喜欢轻松获取数据,注意性能,并且知道MongoDb中的数据冗余很常见,我将选择将此数据存储为子文档。如果您有一些问题,请继续-请在下面回答。如果对您有帮助,我将感谢您的费率;)谢谢你的解释。这很有帮助。希望,有了经验我会理解得更好。
var optionSchema = new Schema({
optionName : {
type : String,
required : true,
},
optionCount : {
type : Number,
default : 0
}
});
var pollSchema = new Schema({
question : {
type : String,
required : true
},
options : [optionSchema]
});
var usersSchema = new Schema({
username : {
type : String,
required : true
},
email : {
type : String,
required : true,
unique : true
},
password : String,
polls : [pollSchema]
});