Agréguese en dos colecciones y obtenga el valor más alto.
Me gustaría tener el número de visualizaciones de un artículo que ha sido visto más veces. A continuación, se muestra un pequeño ejemplo.
Usuarios:
{
username: “John”
},
{
username: “Doe”
}
Mensajes:
{
title: “Lorem Ipsum!”,
views: 400,
author: “John”
},
{
title: “Lorem Ipsum!”,
views: 200,
author: “John”
},
{
title: “Lorem Ipsum!”,
views: 100,
author: “John”
},
{
title: “Lorem Ipsum!”,
views: 403,
author: “Doe”
},
{
title: “Lorem Ipsum!”,
views: 299,
author: “Doe”
}
Quiero tener una propiedad para cada usuario en el objeto que contenga el número más alto de visualizaciones de un mensaje. De esta manera:
{
username: “John”
highest_view: 400
},
{
username: “Doe”
highest_view: 403
}
Podría resolver esto en el código recorriendo y consultando cada objeto, pero eso no parece ser la forma más conveniente.
davy.ai
Para lograr esto utilizando la tubería de agregación de MongoDB, podemos seguir los siguientes pasos:
$max
.$lookup
.Poniéndolo todo junto, la tubería de agregación sería:
Esto nos dará la salida deseada, que contiene el nombre de usuario y la vista más alta para cada usuario.