2012-04-11 13 views
7

Próbuję wykorzystać przykład Tabeli Liderów Meteorytów i wpadam w błąd, próbując losować wyniki graczy.Błąd myśliwski w aktualizacji kolekcji Meteorów

Wyjątkiem mam trafienia jest Exception while simulating the effect of invoking '/players/update' undefined

Odpowiedni kod wygląda następująco:

'click input.randomize_scores': function() { 
    Players.find().forEach(function (player) { 
    random_score = Math.floor(Math.random()*10)*5; 
    Players.update(player, {$set: {score: random_score}}) 
    }); 
} 

Full leaderboard.js contents here

mam wrażenie robię coś bardzo głupiego tutaj. Naprawdę doceniam wskaźnik.

+0

To całkiem bezużyteczny komunikat o błędzie. –

Odpowiedz

15

Pierwszy argument do aktualizacji() musi być identyfikatorem dokumentu lub pełnym selektorem Mongo. Podajesz kompletny dokument gracza. Spróbuj tego:

Players.update(player._id, {$set: {score: random_score}}); 

która jest skrótem dla:

Players.update({_id: player._id}, {$set: {score: random_score}}); 
+0

Awesome! Dzięki za intro Mongo :) –

Powiązane problemy