Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

717
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda