Tengo un requisito particular de manipulación de datos que he resuelto cómo hacerlo en SQL Server y PostgreSQL. Sin embargo, no estoy muy contento con la velocidad, así que estoy investigando MongoDB.Idoneidad de MongoDB para consultas de tipo jerárquico
La mejor manera de describir la consulta es la siguiente. Imagine los datos jerárquicos de los EE. UU .: País, Estado, Condado, Ciudad. Digamos que un vendedor en particular puede dar servicio a toda California. Otra puede servir solo a Los Angeles. Existen potencialmente cientos de miles de proveedores y todos pueden ofrecer servicio desde algún punto (s) en esta jerarquía. No estoy confundiendo esto con Geo: estoy usando esto para ilustrar la necesidad.
Usando consultas recursivas, es bastante simple obtener una lista de todos los proveedores que podrían dar servicio a un usuario en particular. Si estuviera en, digamos, Pasadena, Los Ángeles, California, subiríamos por la jerarquía para obtener los ID correspondientes, luego volveríamos a consultar para encontrar los proveedores.
Sé que esto se puede optimizar. De nuevo, esto es solo un simple ejemplo de consulta.
Sé que MongoDB es una tienda de documentos. Eso satisface otras necesidades que tengo muy bien. La pregunta es: ¿qué tan apropiado es para el tipo de consulta que describo? (Sé que no tiene combinaciones, esas son simuladas).
Entiendo que esta es una pregunta "¿cuánto tiempo es una cuerda?". Solo quiero saber si alguien tiene alguna experiencia con MongoDB haciendo este tipo de cosas. Podría tomar bastante tiempo pasar de 0 a probado, y estoy buscando ahorrar tiempo si MongoDB no es adecuado para esto.
Ejemplo
Una tienda local de la película "A" puede suministrar Blu-Rays en Springfield. Una cadena de tiendas "B" con distribución en todo el estado puede suministrar Blu-Rays a todos los IL. Y una tienda de descarga por demanda "C" puede suministrar a todos los EE. UU.
Si quisiéramos obtener todos los proveedores de películas aplicables para Springfield, IL, la respuesta sería [A, B, C].
En otras palabras, hay numerosos proveedores conectados a diferentes niveles en la jerarquía.
Tradicionalmente, una clave compuesta fácilmente podrían hacer esto. Sin embargo, ese no es el estilo de consulta que estoy buscando. – IamIC