Mongodb Atlas 图表 - 在不同列中显示分组计数
Mongodb Atlas Charts - Show grouped count in different columns
我的数据库中有一组“ofertas”,数据具有以下结构:
{
"_id" : ObjectId("6057a995e5a26c119d254f35"),
"empresa" : {
"direccion" : {
"direccion" : "concepcion arenal",
"cp" : "36950",
"provincia" : "pontevedra",
"poblacion" : "Moaña",
"pais" : "espana"
},
"nombre" : "caru sl"
},
"nombre_oferta" : "Offer Name",
"referencia_interna" : "111222",
"fecha_publicacion" : ISODate("2021-03-21T23:00:00.000Z"),
"fecha_caducidad" : ISODate("2021-04-19T22:00:00.000Z"),
"descripcion" : "Offer description",
"estado" : "caducada",
"pagada" : true,
"userId" : "XXX",
"candidatos" : [],
"createdAt" : ISODate("2021-03-21T20:16:21.438Z"),
"updatedAt" : ISODate("2021-04-20T22:08:14.221Z"),
"__v" : 0
}
我有这个 MongoDB 查询:
[
{ $sortByCount: "$empresa.nombre" },
{$group: {
_id: 0,
empresas_ofertas:{$push: {
empresa:"$_id",
ofertas:"$count",
}},
}},
{ $unwind: "$empresas_ofertas"}
]
将“ofertas”的数量分组,如下所示:
我想在 MongoDB Atlas 图表中将数据显示为单独的列,其中包含“empresas_ofertas”数组中每个对象的“ofertas”计数,但图表只显示一列与“ofertas”的总量:
我将 Y 轴聚合从 SUM 更改为 COUNT BY VALUE,但它将数据与具有相同“ofertas”数量的项目分组。我想要做的是用 ofertas 的计数显示“empresas_ofertas”数组中的所有对象:第一列应该是 60(IXAS Value SL),第二列应该是 53(caru sl)。 ..
我做错了什么?
第 1 步 - 创建查询
你的查询很好。它将 return 创建请求图表所需的数据。我测试了它,你会得到这种格式的响应数据:
[
{
"_id": 0,
"empresas_ofertas": {
"empresa": "caru sl 2",
"ofertas": 2
}
},
{
"_id": 0,
"empresas_ofertas": {
"empresa": "caru sl 1",
"ofertas": 1
}
}
]
这是工作示例:https://mongoplayground.net/p/Gpn9trcgfsK
第 2 步 - 定义轴
正如您在图片中看到的那样,在左侧菜单列表中,您有 _id
字段和 empresas_ofertas
对象字段以及嵌套的 empresa
和 ofertas
字段.这是从查询中 return 得到的数据结构。
在该列表的右侧,有一个部分您应该根据可用数据定义 X Axis
和 Y Axis
(_id
、empresas_ofertas.empresa
和 empresas_ofertas.ofertas
).请注意,现在您根本没有指定 X Axis
,如图所示。
您所要做的就是将 empresa
嵌套字段拖放到 X Axis
,并将 ofertas
拖放到 Y Axis
。这将显示您请求的图表。
我的数据库中有一组“ofertas”,数据具有以下结构:
{
"_id" : ObjectId("6057a995e5a26c119d254f35"),
"empresa" : {
"direccion" : {
"direccion" : "concepcion arenal",
"cp" : "36950",
"provincia" : "pontevedra",
"poblacion" : "Moaña",
"pais" : "espana"
},
"nombre" : "caru sl"
},
"nombre_oferta" : "Offer Name",
"referencia_interna" : "111222",
"fecha_publicacion" : ISODate("2021-03-21T23:00:00.000Z"),
"fecha_caducidad" : ISODate("2021-04-19T22:00:00.000Z"),
"descripcion" : "Offer description",
"estado" : "caducada",
"pagada" : true,
"userId" : "XXX",
"candidatos" : [],
"createdAt" : ISODate("2021-03-21T20:16:21.438Z"),
"updatedAt" : ISODate("2021-04-20T22:08:14.221Z"),
"__v" : 0
}
我有这个 MongoDB 查询:
[
{ $sortByCount: "$empresa.nombre" },
{$group: {
_id: 0,
empresas_ofertas:{$push: {
empresa:"$_id",
ofertas:"$count",
}},
}},
{ $unwind: "$empresas_ofertas"}
]
将“ofertas”的数量分组,如下所示:
我想在 MongoDB Atlas 图表中将数据显示为单独的列,其中包含“empresas_ofertas”数组中每个对象的“ofertas”计数,但图表只显示一列与“ofertas”的总量:
我将 Y 轴聚合从 SUM 更改为 COUNT BY VALUE,但它将数据与具有相同“ofertas”数量的项目分组。我想要做的是用 ofertas 的计数显示“empresas_ofertas”数组中的所有对象:第一列应该是 60(IXAS Value SL),第二列应该是 53(caru sl)。 ..
我做错了什么?
第 1 步 - 创建查询
你的查询很好。它将 return 创建请求图表所需的数据。我测试了它,你会得到这种格式的响应数据:
[
{
"_id": 0,
"empresas_ofertas": {
"empresa": "caru sl 2",
"ofertas": 2
}
},
{
"_id": 0,
"empresas_ofertas": {
"empresa": "caru sl 1",
"ofertas": 1
}
}
]
这是工作示例:https://mongoplayground.net/p/Gpn9trcgfsK
第 2 步 - 定义轴
正如您在图片中看到的那样,在左侧菜单列表中,您有 _id
字段和 empresas_ofertas
对象字段以及嵌套的 empresa
和 ofertas
字段.这是从查询中 return 得到的数据结构。
在该列表的右侧,有一个部分您应该根据可用数据定义 X Axis
和 Y Axis
(_id
、empresas_ofertas.empresa
和 empresas_ofertas.ofertas
).请注意,现在您根本没有指定 X Axis
,如图所示。
您所要做的就是将 empresa
嵌套字段拖放到 X Axis
,并将 ofertas
拖放到 Y Axis
。这将显示您请求的图表。