Я пытаюсь найти документ в своей базе данных, используя findOne (), а затем выполнить поиск в этом документе для массива options
, который содержит объекты.Затем я проверяю свойство объекта, если оно равно pollOption
, затем я хочу увеличить другое свойство этого объекта votes
на 1, но я не могу получить значение этого свойства, поэтому я могу увеличить его.Пожалуйста, помогите.
Routes.js
router.post('/submitVote', function(req, res){
const {pollId, pollOption} = req.body;
Polls.findOne({_id: pollId}
).update({'options.option': pollOption}, {'$set': {
'options.$.votes': '', // INCREMENT BY 1 //
}}, function(err){
if(err){
return console.log(err);
} else {
return res.send('success');
}
});
});
Пример модели:
{
"_id": {
"$oid": "5b2ec4852a51d06734f71e79"
},
"options": [
{
"option": "Amazing!",
"votes": 0
},
{
"option": "Good.",
"votes": 0
}
],
"creator": "Guest",
"name": "Rate this website!",
"__v": 0
}
Опросы.js - схема
var mongoose = require('mongoose');
const Poll = new mongoose.Schema({
name: { type: String, required: true },
options: { type: Array, required: true },
creator: { type: String, default: 'Guest' }
});
const Polls = mongoose.model('Polls', Poll);
module.exports = Polls;