¿Hay alguna manera de buscar múltiples rangos para colecciones en la base de datos mongo? He intentado lo siguiente pero no funciona aunque funciona para un solo rango
db.collection(collection) .aggregate([ { $search: { compound: { filter: [ { range: { path: createdAt, gte: startdate, lte: endDate, }, }, { range: { path: updatedAt, gte: startdate, lte: endDate, }, }, ], }, }, }, { $limit:20, }, ]) .toArray()Simplemente puede poner un $or en $expr en la etapa de $match de su agregación
db.collection.aggregate([ { "$match": { $expr: { $or: [ { $and: [ { $gte: [ "$createdAt", startDate ] }, { $lte: [ "$createdAt", endDate ] } ] }, { $and: [ { $gte: [ "$updatedAt", startDate ] }, { $lte: [ "$updatedAt", endDate ] } ] } ] } } } ])Aquí está el parque infantil de Mongo para su referencia.