最佳 mongodb 模式
best mongodb schema
我有一个 mongodb 架构。我想知道这个模式是否有更好的方法。
question: {
type: String,
required: true,
},
image1: {
type: String,
required: true,
},
image2: {
type: String,
required: true,
},
imageOneVotes: {
type: Number,
default: 0,
},
imageTwoVotes: {
type: Number,
default: 0,
},
votes: {
type: Number,
default: 0,
}
为此我需要一个更好的架构。当我点击 image1
时,我预计 imageOneVotes
会增加。我认为如果我使用这个模式来实现这个功能有点奇怪。
您的 mongoDB 模式似乎不错,除了 'votes' 属性似乎不清楚。
'votes'是两个投票属性的总和吗?我认为您不需要它,每次需要总数时都可以添加两张选票。它将摆脱不必要的验证。
For example -> adding a vote to an image then add one vote to the total is an extra step
数据库的主要目标是清楚地查看数据,然后能够轻松地使用它。
您可以将图像作为对象数组,或者如果您确定只有两张图像,则只需将每张图像设为一个对象,其中包含一个“投票”字段。
question: {
type: String,
required: true
},
images: [{
url: {type: String, required: true},
votes: {type: Number, required: true, default: 0}
}],
votes: {type: Number, required: true, default: 0}
或
question: {
type: String,
required: true
},
imageOne: {
url: {type: String, required: true},
votes: {type: Number, required: true, default: 0},
},
imageTwo: {
url: {type: String, required: true},
votes: {type: Number, required: true, default: 0},
},
votes: {type: Number, required: true, default: 0}
我有一个 mongodb 架构。我想知道这个模式是否有更好的方法。
question: {
type: String,
required: true,
},
image1: {
type: String,
required: true,
},
image2: {
type: String,
required: true,
},
imageOneVotes: {
type: Number,
default: 0,
},
imageTwoVotes: {
type: Number,
default: 0,
},
votes: {
type: Number,
default: 0,
}
为此我需要一个更好的架构。当我点击 image1
时,我预计 imageOneVotes
会增加。我认为如果我使用这个模式来实现这个功能有点奇怪。
您的 mongoDB 模式似乎不错,除了 'votes' 属性似乎不清楚。
'votes'是两个投票属性的总和吗?我认为您不需要它,每次需要总数时都可以添加两张选票。它将摆脱不必要的验证。
For example -> adding a vote to an image then add one vote to the total is an extra step
数据库的主要目标是清楚地查看数据,然后能够轻松地使用它。
您可以将图像作为对象数组,或者如果您确定只有两张图像,则只需将每张图像设为一个对象,其中包含一个“投票”字段。
question: {
type: String,
required: true
},
images: [{
url: {type: String, required: true},
votes: {type: Number, required: true, default: 0}
}],
votes: {type: Number, required: true, default: 0}
或
question: {
type: String,
required: true
},
imageOne: {
url: {type: String, required: true},
votes: {type: Number, required: true, default: 0},
},
imageTwo: {
url: {type: String, required: true},
votes: {type: Number, required: true, default: 0},
},
votes: {type: Number, required: true, default: 0}