'Histogram on nested group MongoDB
I have the following DB Collection of "User" in MongoDB:
User
{
long userId;
long LastUpdateUtcTimeInTicks;
Car[] cars;
....
}
Car
{
long carCompany;
int carModel; // range from 1-10
int tire1_Pressure // range from 0-40
int tire2_Pressure // range from 0-40
int tire3_Pressure // range from 0-40
int tire4_Pressure // range from 0-40
}
Sample of a user
[{
"userId": 1,
"LastUpdateUtcTime": {
"$date": "2022-03-14T07:01:22.430Z"
},
"Car": [
[
{
"carCompany": 1201020,
"carModel": 2,
"l": 2,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204030,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1201040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2202050,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4304090,
"carModel": 3,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 6306050,
"carModel": 3,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1201050,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2202030,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203030,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3202020,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3202020,
"carModel": 2,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1301070,
"carModel": 14,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1301070,
"carModel": 14,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1301070,
"carModel": 14,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3303060,
"carModel": 3,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2302120,
"carModel": 12,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2302120,
"carModel": 12,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1301100,
"carModel": 3,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3303130,
"carModel": 3,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3303070,
"carModel": 3,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1201040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1201020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2202030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2202030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3202020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3202020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203040,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3203030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2202030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 3202020,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 2202050,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 1201030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
},
{
"carCompany": 4204030,
"carModel": 1,
"l": 1,
"tire1_Pressure ": 0,
"tire2_Pressure ": 0,
"tire3_Pressure ": 0,
"tire4_Pressure ": 0
}
],
],
}
}]
I want to do a histogram of the tires pressure based on the car model and car id, for all users that were updated in the last week (LastUpdateUtcTimeInTicks). From what I know I need to use "bucketAuto" for the histogram and do an aggregation on the collection but can't figure out the right query to do that.
Thanks in advance.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
