Mongoose обновляет поддокумент, если существует

У меня есть следующая модель:

var VoteSchema = new Schema({
    up : Boolean
    , createdBy:{type:ObjectId, ref:'users'}
    , createdOn : {type:Date, default:Date.now}
});

var QuestionSchema = newSchema({
    title:String
    , description:String
    , votes : [VoteSchema]
    , createdBy:{type:ObjectId, ref:'users'}
    , createdOn : {type:Date, default:Date.now}
});

var Question = mongoose.model('questions',QuestionSchema);

предполагатьuser1 вошел в систему пользователя иquestion1 является текущим / просматривают вопрос. Пользователь можетupvote({up: true}) илиdownvote({up: false}) вопрос в любое время.Как я могуadd новыйvote еслиuser1 не проголосовали заquestion1 ещеupdate голосование.

Я был в состоянии написать следующие строки кода:

QuestionSchema.statics.castVote = function(questionId, vote) {
    //NOTE : vote.createdBy equalsto loggedInUserID

    Q.nbind(Question.findOne, Question)({
        $and:[
            {_id:questionId},
            {'votes.createdBy':vote.createdBy}
        ]
    }).then(function(doc) {

        if(doc) {
           //I am clue less
           //doc.votes is a list of votes for this question
           // how can I get the particular vote casted by the user - vote.createdBy
        }else {
           //Question.votes.push(vote);
        }
    });

});

Ответы на вопрос(1)

Ваш ответ на вопрос