Considere la siguiente colección MongoDB
[ { _id: 123, links: { "google.com": 3, "facebook.com": 4, "whatsapp.com": 6 } }, { _id: 123, links: { "google.com": 4, "facebook.com": 6, "yahoo.com": 8 } }, { _id: 123, links: { "mail.com": 3, "twitter.com": 4, "whatsapp.com": 5 } } ] Digamos que los documentos anteriores están en la colección mongodb y quiero recuperar el enlace máximo que tiene el número mayor.
Por ejemplo:
Entonces, aquí el número más alto es para la clave "whatsapp.com". Necesito esta clave y la suma total es 11.
Gracias por adelantado
$objectToArray convertir objetos de links a una matriz de objetos en formato clave-valor$unwind para deconstruir la matriz de links$group por nombre de enlaces y contar el valor total$sort por valor total en orden descendente$limit 1 para seleccionar un solo documento db.collection.aggregate([ { $addFields: { links: { $objectToArray: "$links" } } }, { $unwind: "$links" }, { $group: { _id: "$links.k", count: { $sum: "$links.v" } } }, { $sort: { count: -1 } }, { $limit: 1 } ])