/ / ¿Cómo paginar después de desconectar en Spring boot con MongoDB? - primavera, mongodb, paginación

¿Cómo Paginar después de desconectar en Spring boot con MongoDB? - primavera, mongodb, paginación

Actualmente me encuentro con un problema de este tipo:

Tengo un objeto UN que tiene una propiedad de matriz Bs. Me gustaría mostrar Bs en la interfaz de usuario, pero porqueHay demasiados datos, tengo que paginar de alguna manera. El problema es que hice una investigación, pero no pude encontrar una solución que pueda desenrollar primero, luego paginar.

UN:

{
id : 1,
Bs : [{
id: 29
},{
id : 3
}]
}

Si uso la Agregación, puedo desenrollar los Bs, pero no puedo "paginarlos después. La paginación es el problema principal.

Si uso PagingAndSortingRepository, puedo paginar, pero no puedo desenrollarlo. Incluso si me desenrollo manualmente después, porque paginé antes de desenrollar, el resultado no será el deseado.

Si utilizo los criterios de consulta, puedo paginar con omisión y límite, pero aún no sé cómo desconectar antes de la paginación.

LA GRAN PREGUNTA: ¿Cómo puedo desenrollar primero, luego paginar el resultado desenrollado?

EDITAR:

Ejemplo de objetos de datos en MongoDB:

{
id: 1,
ts: 1488208130000,
logs: [{
id: 1,
type: 4
},{
id: 2,
type: 7
}]
},
{
id: 2,
ts: 1488208150000,
logs: [{
id: 2,
type: 4
}]
}

Quiero preguntar logs con ts entre startDate y endDate, desc vía ts, también vía type si se especifica Pero hay demasiados objetos de datos, por ejemplo, si seleccionas la semana pasada (casi 1 segundo por segundo), así que necesito paginación. No sé cuántos registros habrá en un objeto de datos. Por lo tanto, no puedo paginar primero y luego desenrollar los registros. El número probablemente no coincidirá. Puedo consultar la página de recolección de datos 2. con tamaño 100, pero cuando desenrollo los registros, puede haber 47 de ellos con el número deseado. type.

Respuestas

1 para la respuesta № 1

Puedes cortar la matriz en mongo usando la $slice operador.

P.ej.

db.collection.findOne({_id:1}, {B: $slice: [start, end]})

Puedes hacer algunas cosas bastante impresionantes con él. Consulte la documentación para más ejemplos: https://docs.mongodb.com/manual/reference/operator/projection/slice/