Mungo update sub-Dokument, falls vorhanden

Habe ich folgende Modell :

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);

Angenommen user1 ist der Benutzer eingeloggt ist, und question1 aktuell /anzeigen Frage.Der Benutzer kann upvote({up:true}) oder downvote({up:false}) jederzeit eine Frage. Wie kann ich add eine neue vote wenn ein user1 haben nicht gegossen eine Stimme für question1 sonst update Abstimmung.

Ich in der Lage gewesen zu schreiben, die folgenden Zeilen des Codes:

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);
        }
    });

});
InformationsquelleAutor Lekhnath | 2014-02-26
Schreibe einen Kommentar