j'ai les données de séries chronologiques suivantes stockées dans MongoDB
{
"_id" : ObjectId("59a46062e1aeb958a712490e"),
"channelName" : "ABC",
"rtData" : [
{
"ts" : ISODate("2017-08-28T18:26:42.837Z"),
"data" : [ 676.297664, 676.297664 ]
},
{
"ts" : ISODate("2017-08-28T18:27:42.837Z"),
"data" : [ 724.297664, 676.297664 ]
},
{
"ts" : ISODate("2017-08-28T18:29:42.837Z"),
"data" : [ 878.297, 676.297 ]
}
]
}
Je veux regrouper les données en fonction du champ ts sur l'heure et obtenir le premier élément de rtData pour que heure. Voici ce que j'ai essayé
db.channels.aggregate([ {$match: {"channelName": "ABC"} }, { $unwind : "$rtData" }, { $group : {_id: { $hour: "$rtData.ts" }, ucast: { $sum: $rtData.data[0]} }
Mais le code ci-dessus me donne la sortie suivante
{ "_id" : 28, "ucast" : 0 }
Ce que je veux vraiment est
{ "_id" : 28, "ucast" : 676.297664 }
Merci cela fonctionne. – Neeraj
@Neeraj Bienvenue sur StackOverflow. Ne laissez pas un commentaire en disant merci, mais plutôt indiquer la bonne réponse en [Acceptant la réponse] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) qui est une indication claire. –