2012-04-11 9 views
7

Estoy probando el ejemplo de Meteor's Leaderboard y me encuentro con un error al intentar aleatorizar los puntajes de los jugadores.Error de caza en la actualización de la colección Meteor

La excepción es que estoy golpeando Exception while simulating the effect of invoking '/players/update' undefined

El código en cuestión es el siguiente:

'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

tengo la sensación de que estoy haciendo algo bastante tonto aquí. Realmente apreciaría un puntero.

+0

Ese es un mensaje de error bastante inútil. –

Respuesta

15

El primer argumento para actualizar() debe ser un ID de documento o un selector completo de Mongo. Estás pasando el documento completo del jugador. Prueba esto:

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

que es la abreviatura de:

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

¡Impresionante! Gracias por la introducción de Mongo :) –

Cuestiones relacionadas