2015-07-17 5 views
1

Je veux revenir posts qui a créé aujourd'hui et les trier par date { sort: { createdAt: -1 }}Sélectionnez les paramètres MongoDB MeteorJS

Code I Have:

<template name="m_table_time"> 
    <div class="container"> 
     <h1 class="table_date">Today</h1> 
     {{> m_table posts=today}} 
    </div> 
</template> 

Template.m_table_time.helpers({ 
    today: function() { 
    var today = moment().toDate(); 
    var daystart = moment().startOf('day').toDate(); 
    return Posts.find({},{ sort: { createdAt: -1 }},{$gte: daystart, $lte: today }); // this doesnt work 
    }, 

<template name="m_table"> 
      <table class="main-table table"> 
       {{#each posts}} 
       {{> m_jobs}} 
       {{/each}} 
      </table> 
</template> 

J'ai aussi essayé de faire quelque chose comme ça

return Posts.find({},{ sort: { createdAt: -1 }},{bigpost:true}); // also this doesnt work 

Quelqu'un aide?

+0

Vos dates sont 'Date' types BSON ou sont-ils réellement "cordes"? Sans parler de. "Qu'est-ce que tu fais?". Vous spécifiez une requête avec '$ gte' etc. dans la" requête ". Où avez-vous jamais pensé qu'il y a un troisième argument à '.find()' comme ça? –

Répondre

1

Le premier argument de find est le sélecteur, et c'est là besoin d'aller vos règles de date:

var selector = {createdAt: {$gte: daystart, $lte: today}}; 
return Posts.find(selector, {sort: {createdAt: -1}}); 

Voir aussi this question.

0

Votre méthode de recherche devrait être structuré comme ceci:

Posts.find(
{ createdAt: {$gte: daystart, $lte: today} }, 
{ sort : {createdAt: -1} } 
); 
+0

Merci, très bien –