2017-07-11 1 views
1

J'essaie d'interroger les données créées dans un mois particulier.trouver des données pour un mois particulier dans les rails mongodb

@events = Event.aggregates([ 
           { 
            '$project': { 
             _id: 1, 
             created_at: 1, 
             'month': {'$month': '$created_at'} 
            }, 
           }, 
           {month: {'$match': 05}} 
          ]) 

les agrégats ne me donnent aucun résultat.

Je reçois une réponse dans postier,

{ 
    "count": 0, 
    "sum": null, 
    "avg": null, 
    "min": null, 
    "max": null 
} 

Répondre

0

Personnellement, je préfère collection.aggregate sur aggregates. Deuxièmement, le pipeline $match était erroné. Enfin, même si cela fonctionne en ruby, n'écrivez pas 05 et certaines langues pourraient interpréter cela comme octal plutôt que comme décimal.

@events = Event.collection.aggregate([ 
           { 
            '$project': { 
             _id: 1, 
             created_at: 1, 
             'month': {'$month': '$created_at'} 
            }, 
           }, 
           {"$match" => {"month" => {'$eq': 5}}} 
          ]).to_a 
+0

fonctionne très bien. thnx – ashusvirus

+0

comment vais-je insérer des éléments de requête dans cela? comme nous insérons dans le cas où. – ashusvirus

+0

Simple plus d'éléments '$ match'. J'ai trouvé la documentation très utile sur https://docs.mongodb.com/manual/aggregation/ –