Итак, я работал над этим приложением для голосования, используя Node, Express и Mon goose. Я создал эту модель Schema VoteCasting. js
const mongoose = require('mongoose');
const ballot = new mongoose.Schema({
ballotFirstName:{
type:String
},
ballotLastName:{
type:String
},
voteCasted:{
type:Array,
}
})
module.exports=mongoose.model('Ballot',ballot)
Notice voiceCasted ключ НЕ УНИКАЛЬНЫЙ. Файл e js имеет следующий вид:
<label>Vote for Candidate 1</label>
<input type="radio" id='one' name="ballot" value='A'>
<div><h2>Candidate 2</h2></div>
<label>Vote for Candidate 2</label>
<input type="radio" id='two' name="ballot" value='B'>
<button type="submit">Vote</button>
Моя схема состоит в том, чтобы иметь ключ voiceCasted, принимающий либо A, либо B за голос каждого пользователя. Вообще говоря, имеет смысл иметь несколько пользователей, голосующих одинаково. Тем не менее, в моем приложении после того, как пользователь 1 проголосовал за A, если пользователь 2 проголосовал за A, я вижу MongoError: E11000 коллекция ошибок дублированного ключа: library.ballots index: voiceCasted_1 dup ключ: {voiceCasted: "A"} в Function.create в командной строке терминала.
Ниже приведено то, что передается в запрос на публикацию
router.post('/loggedin/testing',async (req,res)=>{
const filledBallot = new BallotBox({
ballotFirstName:newVoter.firstName, //disregard this line for this question
ballotLastName:newVoter.lastName, //disregard this line for this question
voteCasted:req.body.ballot
})
Почему у меня возникает ошибка дублирования, когда уникальный даже не определен? Как я решу это? Спасибо