Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
Mongoose está conectado pero no puede encontrar datos

Tengo un problema y realmente me vendría bien un poco de ayuda. Teníamos una aplicación que usaba MySQL y estamos cambiando a MongoDB. Estamos usando Node.js con Express y tenemos MongoDB y Mongoose para la base de datos.

Hemos consultado la documentación de MongoDB y Mongoose y buscado preguntas relacionadas con Stack Overflow, pero parece que nos falta algo.

Esto es lo que tenemos en app.js:

 var mongo = require('mongodb'); var mongoose = require('mongoose'); var db = mongoose.connect('mongodb://localhost:27017/DBName');

Este es nuestro modelo de usuarios.js

 var db = require('mongoose'); var Schema = db.Schema; var userSchema = new Schema({ u_id : Number, u_name : { type: String, required: true }, u_lastname : String }); module.exports = db.model('user', userSchema);

Y esto es lo que usamos en el controlador de usuario:

 var User = require('../models/usersModel'); User.find({}, function(err, users) { if (err) throw err; console.log("Found users: ", users); });

El archivo console.log(db.connection.readyState); dice que se esta conectando Y User.find() no parece dar un error, sino que da una matriz vacía/indefinida.

Realmente agradeceríamos si alguien pudiera decirnos lo que pasamos por alto.

Gracias por adelantado.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No estoy seguro de por qué alguien pensó que esto era una buena idea, pero esto es lo que hace la mangosta:

Mongoose por defecto produce un nombre de colección al pasar el nombre del modelo al método utils.toCollectionName. Este método pluraliza el nombre.

Como beneficio adicional, está en minúsculas, lo que apesta cuando tienes nombres de tablas con la convención de mayúsculas y minúsculas.

Puede solucionarlo configurando la siguiente opción en su esquema:

 var userSchema = new Schema({..}, { collection: 'user' });

Más sobre esto aquí .

about 4 years ago · Santiago Trujillo Denunciar

0

Su llamada find () me parece bien.

¿Estás seguro de que hay usuarios en tu colección? ¿La creación de un nuevo usuario arroja un error que no notó? Tal vez pueda verificar que efectivamente hay usuarios en su colección abriendo una terminal y escribiendo:

 > mongo > use DBName > show collections > db.user.find()

Y eso devolverá todos los usuarios que existen.

about 4 years ago · Santiago Trujillo Denunciar

0

En: iuliu.net: Obtenemos ambos errores, el primero fue [] y el segundo no está definido.

En JohnnyHK: Gracias por su envío, pero estamos seguros de que la colección de usuarios está en esta base de datos y que las propiedades que buscamos existen.

En Juuso: gracias por sus comentarios, pero en el terminal mongo obtuvimos la salida de la colección.

Alguien nos hizo una pregunta crítica si intentábamos esto con el monje. Instalamos monk y encontramos la base de datos, la colección y obtuvimos el resultado. Todavía no estamos seguros de cuál fue el problema con Mongoose, pero con monk funciona.

Gracias chicos por sus comentarios y tiempo.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda