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!

È stato utile?

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)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top