Implementare il paging embedded con le pagine totali in MongoDB
-
26-10-2019 - |
Domanda
Ho verificato una domanda precedente che è legato con il mio paging incorporato situazione. Anche se il paging embedded con affettare funziona bene, il pagine totali soluzione manca ancora, e mi chiedo se è possibile ottenere la dimensione totale dei commenti sul lato server.
C'è un modo per query o contare la dimensione della matrice incorporato nel server, senza dover andare a prendere l'intero documento per la mia app e contare manualmente?
Non mi occupo di fare 2 query per questo, 1 per paging il commento, 1 per ottenere il totale dei commenti. Se posso fare questo in una query, che sarà sorprendente però.
A proposito, io sto usando il driver java e la primavera-dati MongoDB.
Si prega di condividere i tuoi pensieri. Grazie!
Soluzione
Best / modo più veloce per ottenere il numero totale di documenti incorporati è creare un campo aggiuntivo e conteggio ricalcolo dopo ogni aggiornamento / inserimento. Documento sarà così
{
_id: 1,
comments: [],
commentsCount: 5
}
Poi si può semplicemente includere campo commentsCount
quando fare fetta:
//this query will include only 10 comments _id and comments count of root document
db.articles.find({}, {comments:{$slice: [20, 10]}, _id:1, commentsCount: 1})
E in realtà non v'è altro modo per calcolare il conteggio totale dei documenti incorporati (non sto parlando di m / r, perché è lenta per le richieste in tempo reale)