2012-04-14 7 views
9

Probablemente me falta algo bastante obvio o me falta algo en la documentación. Busqué y no encontré una pregunta similar. publicarlo.meteoro no puede observar consultas con omisión o límite

Ambos

return Items.find({},{sort: {time: -1}, limit: 10}); 

o

return Items.find({},{sort: {time: -1}).limit(10); 

resultado en meteor cannot observe queries with skip or limit

+0

El problema ha sido registrado. Mira esto [problema de github] (https://github.com/meteor/meteor/issues/528#issuecomment-11229625) – meawoppl

Respuesta

16

ACTUALIZACIÓN: Esta es ya un problema. A partir de Meteor 0.5.3, puede observar consultas con las opciones skip y limit.

Por desgracia, esto es cierto: el paquete mimimongo no soporta actualmente llamando observe de cursores que utilizan los skip o limit opciones. No hay una buena razón para esto; simplemente no está implementado.

Si llama esta consulta dentro de un ayudante de la plantilla, hay una solución fácil:

Template.name.items = function() { 
    // fetch array of all the items 
    var items = Items.find({}, {sort: {time: -1}}).fetch(); 

    // return only the first 10 items to the template 
    return items.slice(0,10); 
}; 

La desventaja de la solución es la eficiencia. Si su ayudante devuelve un cursor (simplemente devolviendo el valor de Items.find sin llamar al fetch, entonces el sistema de la plantilla es lo suficientemente inteligente como para no volver a calcular toda la plantilla cuando solo un elemento cambia o si se inserta un elemento nuevo.

por otro lado, llamando fetch en el ayudante registra una dependencia en el resultado de la consulta toda, por lo que toda la plantilla se vuelve a calcular cualquier momento cualquier objeto en los cambios de la consulta.

no hay otra diferencia. la plantilla pondrá lo mismo en la pantalla y conservará el contenido de los elementos del formulario cuando tenga que volver a dibujarse.

+0

gracias, funcionó. ¿considera la hoja de ruta otro paquete de mongodb para evitar la confusión entre los documentos de mongodb y demás? –

+2

Nos gustaría que minimongo implemente la API MongoDB completa. Los parches son bienvenidos. http://docs.meteor.com/#collections tiene una lista de elementos faltantes. – debergalis

+2

La documentación en [enlace] (http://docs.meteor.com/#data) muestra los límites y es posible que deba actualizarse? 'Template.players.top_10_scorers = function() { return Users.find ({}, {sort: {puntaje: -1}, límite: 10}); }; 'desearía poder ayudar pero soy un novato más ecológico y solo estoy aprendiendo esto –

Cuestiones relacionadas