作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个这样的数据集:
[
{
"_id" : ObjectId("5fa506a9fe8d8429b0f7a85c"),
"userid" : "5c35f1045643180d9488112f",
"pt" : 2,
"date" : ISODate("2021-02-28T08:17:45.489Z"),
"wtg" : 0.92,
"rank" : 1
},
{
"_id" : ObjectId("5fa506a9fe8d8429b0f7a85d"),
"userid" : "5c35f1045643180d9488112g",
"pt" : 2,
"date" : ISODate("2021-02-28T08:17:45.489Z"),
"wtg" : 0.82,
"rank" : 2
},
{
"_id" : ObjectId("5fa506a9fe8d8429b0f7a85e"),
"userid" : "5c35f1045643180d9488112f",
"pt" : 1,
"date" : ISODate("2021-02-28T08:17:45.489Z"),
"wtg" : 0.92,
"rank" : 1
},
{
"_id" : ObjectId("5fa506a9fe8d8429b0f7a85f"),
"userid" : "5c35f1045643180d9488112f",
"pt" : 3,
"date" : ISODate("2021-02-28T08:17:45.489Z"),
"wtg" : 21.92,
"rank" : 1
},
{
"_id" : ObjectId("5fa506a9fe8d8429b0f7a85g"),
"userid" : "5c35f1045643180d9488112f",
"pt" : 3,
"date" : ISODate("2021-02-28T08:17:45.489Z"),
"wtg" : 10.92,
"rank" : 2
},
{
"_id" : ObjectId("5fa506a9fe8d8429b0f7a85h"),
"userid" : "5c35f1045643180d9488112f",
"pt" : 4,
"date" : ISODate("2021-02-28T08:17:45.489Z"),
"wtg" : 1002,
"rank" : 1
}
]
我有 4 种类型的考试,即 pt: 1, pt: 2, pt: 3, pt: 4
[
{
pt: 2,
users: [
{ uid: '5c35f1045643180d9488112f', rank1: 3, rank2: 1, rank3: 5 },
{ uid: '5c35f1045643180d9488113g', rank1: 0, rank2: 15, rank3: 2 },
]
}
]
我尝试的只是代表
userid
的重复。我对如何编写正确的查询来实现这一点感到困惑:
db.CollectionName.aggregate(
[
{
$facet: {
groupByPage: [
{ $unwind: '$_id' },
{
$group: {
_id: '$_id',
count: { $sum: 1 },
},
},
],
}
}
]
)
任何人都可以用正确的方法指导我并分享可理解性的步骤。
最佳答案
您可以使用单个 $group
阶段在哪里用排名值的条件求和,如下所示:
db.collection.aggregate([
{
$group: {
_id: {
user: "$userid",
exam: "$pt"
},
rank1: {
$sum: {
$cond: [
{
$eq: [
"$rank",
1
]
},
1,
0
]
},
},
rank2: {
$sum: {
$cond: [
{
$eq: [
"$rank",
2
]
},
1,
0
]
},
},
rank3: {
$sum: {
$cond: [
{
$eq: [
"$rank",
3
]
},
1,
0
]
},
}
}
},
{
$group: {
_id: "$_id.exam",
users: {
$push: {
uud: "$_id.user",
rank1: "$rank1",
rank2: "$rank2",
rank3: "$rank3"
}
}
}
}
])
Mongo Playground
关于MongoDB Aggregate 获取特定考试中存在的用户数量并确保该考试中的位置数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66964019/
This question already has answers here: Using Variable for Thread group Ramp up time (3个答案) 3年前关闭。 从
我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足一个用户的需求。有什么方法可以让 RPyC 强制执行一次只有一个用户可以访问吗? 最佳答案 我不确定这是否有效(或有效),但您可以
如果我想以每秒 10 个请求运行测试。如何让 Jmeter 选择每秒处理该请求数所需的最佳线程数。 我将线程数设置为与每秒请求数相同。 最佳答案 您可以使用恒定吞吐量计时器 click here你只需
我正在尝试进行查询以检查客户表并返回过去 30 天、过去 365 天和所有时间具有特定值的用户数。 所有时间的计数很简单: $stmt = $conn->prepare("SELECT count(i
我是一名优秀的程序员,十分优秀!