Estamos planeando utilizar MongoDB para almacenar grandes cantidades de datos analíticos, como vistas y clics. No estoy seguro de la mejor manera de estructurar los documentos dentro de MongoDB para ayudar a consultar y reducir el tamaño de la base de datos.MongoDB Enfoques para almacenar grandes cantidades de datos de métricas/análisis
Necesitamos registrar acciones contra un nombre de página, cliente y el tipo de acción. Idealmente, necesitamos estadísticas que bajen al nivel año/mes/día/hora, no necesitamos ni nos importan las vistas por segundo o minuto. Si bien esta estructura de documentos se ve bien, soy consciente de que 100 visitantes generarían 100 documentos nuevos.
{
"_id" : ObjectId("4dabdef81a34961506040000"),
"pagename" : "Hello",
"action" : "view",
"client" : "client-name",
"time" : Date("Mon Apr 18 07:49:28 2011")
}
¿Hay mejor manera práctica de hacer esto, ya sea usando $inc o Capped Collections?
Interesante, ¿cómo sería la sintaxis de find() si quisiera mostrar un conteo de vistas para 'Hola' por cada hora del último día? – Tom
.. entonces esta solución no sería exactamente ideal. Pero espere, publicaré una actualización. – Matt
Mientras tanto, es posible que desee echar un vistazo a http://cookbook.mongodb.org/patterns/unique_items_map_reduce/ – Matt