Write a Mongo Pipeline query for the push operation.
Example:
[{"_id" : ObjectId("6020d98f62864f47ec0e1ca3"),"mediaSite" : "facebook","date" : ISODate("2021-02-05T18:30:00.000+0000"),"hourly_View" : {"1" : 123.0,"2" : 323.0,"3" : null,"4" : 262.0,"5" : null,"6" : 526.0,"7" : 232.0,"8" : null,"9" : 654.0,"10" : null,"11" : 123.0,"12" : 0.0,"13" : 234.0,"14" : 262.0,"15" : 872.0,"16" : 526.0,"17" : 232.0,"18" : 635.0,"19" : 654.0,"20" : 765.0,"21" : 765.0,"22" : -123.0,"23" : 323.0,"24" : 234.0}}]
Approach
Query: push operation in mongo and filtration of null and negative value.
db.getCollection("SocialMediaTik").aggregate([{$match:{"mediaSite":"facebook"}},{$project:{"mediaSite":1,"view":{$objectToArray:"$hourly_View"}}},{$unwind:"$view"},{$match:{"view.v":{$gt:0,$ne:null}}},{$group:{"_id":"mediaSite","hourly_View":{$push:{"key":"$view.k","value":"$view.v"}}}}]);
Output:
[{"_id" : "mediaSite","hourly_View" : [{"key" : "1","value" : 123.0},{"key" : "2","value" : 323.0},{"key" : "4","value" : 262.0},{"key" : "6","value" : 526.0},{"key" : "7","value" : 232.0},{"key" : "9","value" : 654.0},{"key" : "11","value" : 123.0},{"key" : "13","value" : 234.0},{"key" : "14","value" : 262.0},{"key" : "15","value" : 872.0},{"key" : "16","value" : 526.0},{"key" : "17","value" : 232.0},{"key" : "18","value" : 635.0},{"key" : "19","value" : 654.0},{"key" : "20","value" : 765.0},{"key" : "21","value" : 765.0},{"key" : "23","value" : 323.0},{"key" : "24","value" : 234.0}]}]
No comments:
Post a Comment