Hola, tengo 2 colecciones que no tienen referencia entre sí, quiero fusionarlas en una colección, luego hago la paginación.
Sin embargo, no funciona, solo obtengo resultados cuando la página es 1, pero para cualquier otra página solo obtengo una matriz vacía
const search = async (skip, limit, query) => { const regex = new RegExp(`^${query}`, 'i') const cursor = await db.collection('cats').aggregate([ { $unionWith: { coll: 'dogs', pipeline: [{ $project: { 'breeds': false } }] } }, { $match: { $or: [ { 'dog_name': { $regex: regex } }, {'cat_name': { $regex: regex } } ]}}, { $limit: limit }, { $skip: skip } ]).toArray() return cursor } const result1 = search(0, 10, 'Mi') // This works const result2 = search(10, 10, 'Mi') // This doesn't page(2) const result2 = search(20, 10, 'Mi') // This doesn't page(3)Prueba esto:
const cursor = await db.collection('cats').aggregate([ { $unionWith: { coll: 'dogs', pipeline: [{ $project: { 'breeds': false } }] } }, { $match: { $or: [ { 'dog_name': { $regex: regex } }, {'cat_name': { $regex: regex } } ]}}, { $skip: skip } , { $limit: limit } ]).toArray()Estás limitando antes de saltar, tal vez ese sea el problema.