Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Problemas conocidos de MongoDB Connector for BI

Algunas funciones agregadas de SQL (como SUM, MIN, o COUNT) devuelve NULL si no hay valores coincidentes para esa función de agregación. Esta respuesta es efectivamente una fila vacía.

Dada exactamente la misma SQL query, el BI Connector no devuelve NULL para ninguna función de agregación; en su lugar, devuelve un conjunto vacío.

Ejemplo

Estás analizando el rendimiento académico de los estudiantes en cada una de las clases ofrecidas el año pasado por una universidad. Utilizando Tableau, ejecutas una SQL query para encontrar estadísticas para cada clase, incluyendo las notas más altas y más bajas del examen, así como la suma y el recuento de todas las notas de la clase.

SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores)
FROM students_2019
GROUP BY class;

Lamentablemente, ejecutas accidentalmente la **query** sobre los datos de las clases del **siguiente** año, por lo que no hay puntajes de pruebas que la **query** pueda encontrar.

Si los datos del estudiante estuvieran almacenados en MySQL, esta query devolvería una sola fila con NULL valores para los campos que se calculan con las funciones SUM, MAX y MIN, y 0 para los campos que se calculan con la función COUNT.

SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores)
FROM students_2019
GROUP BY class;
+-------------+----------+---------------+-------------+-------------+
| sum(scores) | count(*) | count(scores) | max(scores) | min(scores) |
+-------------+----------+---------------+-------------+-------------+
| NULL | 0 | 0 | NULL | NULL |
+-------------+----------+---------------+-------------+-------------+

Si los datos del estudiante se almacenan en MongoDB y se acceden a través de BI Connector, esta query devolverá un conjunto vacío.

SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores)
FROM students_2019
GROUP BY class;
Empty set (0.00 sec)

Puede ocurrir un error de mapeo conocido que hace que BI Connector devuelva todos los valores de NULL. Este error puede ocurrir cuando se hace query a una colección que contiene un campo de array que puede ser NULL, y el mismo array contiene un campo adicional que también puede ser NULL. Una solución temporal para este error es crear una vista con el filtro $match que solo devuelva documentos en los cuales el campo $type esté array mediante el método createView.

Ejemplo

Para una colección llamada nextDeparture con un campo de arreglo llamado response.schedule que a veces es NULL, puede crear la siguiente vista:

db.createView("nextDeparture_view", "nextDeparture", [
{
"$project": {
"response": { "$cond": { "if": { "$eq": ["$response.schedule", null] },
"then": { }, "else": "$response" } }, "name": 1
}
} ])

Volver

Variables del sistema

En esta página