Как увеличить значение свойства (целое число) внутри .update () и $ set mongoose? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь найти документ в своей базе данных, используя 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...