Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

723
Views
¿Cómo implementar la tabla de datos de representación del lado del servidor, usando nodo y mongo db?

Así que tengo una colección de usuarios (mongo DB) que consta de millones de usuarios.

Estoy usando nodejs como backend, angular js como frontend y datatable para mostrar a esos usuarios.

Pero la tabla de datos carga a todos los usuarios en una llamada api que carga más de 1 millón de usuarios.

Esto hace que la respuesta de mi API sea dos lenta.

Solo quiero los primeros 50 usuarios, luego los siguientes 50 y así sucesivamente....

Pila de servidor = nodo js + angular js + mongo DB

Gracias

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Si está utilizando una tabla de datos con una gran cantidad de datos, debe considerar usar la funcionalidad de procesamiento del lado del servidor.

El procesamiento del lado del servidor para la tabla de datos se describe aquí: https://datatables.net/manual/server-side

Pero si te da pereza implementar esto en tu servidor, puedes usar terceros como:

  • https://github.com/vinicius0026/datatables-query
  • https://github.com/eherve/mongoose-datatable

Espero que esto ayude.

over 4 years ago · Santiago Trujillo Report

0

La forma de resolver que su cliente intente obtener usuarios de su servidor (y base de datos) y luego representarlos en una tabla de datos se realiza mediante la paginación. Hay algunas formas de resolver la paginación que he visto, supongamos que está usando REST.

Una forma de hacer esto es hacer que su API termine con:

 /api/users?skip=100&limit=50

Es decir, el cliente le preguntará a su servidor por los usuarios (usando la clasificación predeterminada) y omitirá los primeros 100 resultados que encuentre y recuperará los siguientes 50 usuarios.

Otra forma es tener su API así (realmente no me gusta este enfoque):

 /api/users?page=5&pageSize=50

Es decir, el cliente pasará qué página y cuántos resultados por página quiere obtener. Esto dará como resultado un cálculo del lado del servidor porque necesitaría buscar usuarios de 250-300.

Puedes leer en paginación mucho más en la web.

Habiendo dicho eso, su próximo problema es obtener los usuarios deseados de la base de datos. MongoDB tiene dos funciones para usar skip y limit , por lo que me gusta más la primera API. Puedes hacer la consulta de la siguiente manera:

 users.find().skip(50).limit(50)

Puede leer más sobre la función de límite aquí y la función de salto aquí

over 4 years ago · Santiago Trujillo Report

0

Lo primero que necesita para agregar omitir y limitar su consulta mongo como este Model.find().skip(offset).limit(limit)

luego, lo siguiente que debe hacer es habilitar el procesamiento del lado del servidor en tablas de datos

Si está utilizando la tabla de datos de JavaScript, este violín funcionará para usted http://jsfiddle.net/bababalcksheep/ntcwust8/

Para tablas de datos angulares

http://l-lin.github.io/angular-datatables/archives/#/serverSideProcessing

Otra forma si desea enviar sus propios parámetros

 $scope.dtOptions = DTOptionsBuilder.newOptions() .withOption('serverSide', true) .withOption('processing', true) .withOption('ajax', function (data, callback, settings) { // make an ajax request using data.start and data.length $http.post(url, { draw: draw, limit: data.length, offset: data.start, contains: data.search.value }).success(function (res) { // map your server's response to the DataTables format and pass it to // DataTables' callback draw = res.draw; callback({ recordsTotal: res.meta, recordsFiltered: res.meta, draw: res.draw, data: res.data }); }); })

obtendrá la longitud por página y el desplazamiento como variable de inicio en el objeto de datos en la sección .withOption('ajax', fun...) y desde allí puede pasar esto en la solicitud de obtención como parámetros, por ejemplo, /route?offset=data. start&limit?data.length o usando la solicitud de publicación en el ejemplo anterior

 On hitting next button in table this function will automatically trigger with limit and start and many other datatable related value
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!