嵌套组 MongoDB 上的直方图
我在 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
}
用户示例
[{
"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
}
],
],
}
}]
我想根据汽车型号和汽车 ID 为上周更新的所有用户 (LastUpdateUtcTimeInTicks) 制作轮胎压力直方图。 据我所知,我需要对直方图使用“bucketAuto”并对集合进行聚合,但无法找出正确的查询来执行此操作。
提前致谢。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论