最佳 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}