Tengo una operación un poco así:
const results = Promise.all([ myColl1.find(query1).sort(sort).limit(limit).toArray(), myColl2.find(query2).sort(sort).limit(limit).toArray(), ]);Sin embargo, parece que los resultados son completamente inesperados. Después de ver lo que podría estar pasando, la documentación dice:
Advertencia: Debido a que las llamadas asincrónicas modifican directamente el cursor, la ejecución simultánea de llamadas asincrónicas en un solo cursor también puede causar un comportamiento indefinido. Siempre espere a que se complete la operación asincrónica anterior antes de ejecutar otra.
La parte del "cursor único" parece implicar que podría ser posible hacer esto con dos cursores separados. En realidad, no estoy muy seguro de los detalles técnicos, pero el hecho de que myColl1 != myColl2 no significaría que son cursores separados? De hecho, he estado considerando unirme a las colecciones, así que si fueran iguales, ¿sería posible usar cursores separados? Cualquier ayuda es apreciada.
¿Usas esperar? Hice algunos cambios a lo que publicaste originalmente:
const [res1, res2] = await Promise.all([ await myColl1.find(query1).sort(sort).limit(limit).toArray(), await myColl2.find(query2).sort(sort).limit(limit).toArray() ]);Espero que esto ayude ✌🏼