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

146
Views
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.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

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í .

over 4 years ago · Santiago Trujillo Report

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.

over 4 years ago · Santiago Trujillo Report

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.

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!