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

166
Vistas
Uso de una función de esquema de Mongoose dentro de un modelo de Mongoose exportado

Últimamente he estado trabajando en un sistema de autenticación que se supone que crea un nuevo usuario si no existe ningún usuario con una ID dada O carga en un usuario con una ID existente. También descubrí que puede devolver si un usuario existe o no con ID usando

 User.count({_id: id}, function (err, count){ if(count > 0){ // User exists, continue with loading data } else { // User does not exist, create one } });

siendo el usuario un modelo Mongoose exportado mongoose.model('User', UserSchema);

Si creé una función que existe con Id (id) en mi app.js ahora, funcionaría perfectamente bien (a juzgar por el hecho de que el código mencionado anteriormente funciona perfectamente bien ), pero quiero mover esta función a mi modelo user.js ( que contiene el código Mongoose / MongoDB) en su lugar, de modo que lo tenga solo para ese modelo específico. Cada vez que trato de hacer eso usando

 UserSchema.statics.existsWithId = function(id) { this.count({_id: id}, function (err, count){ return count > 0; }); }

o métodos similares, sin embargo, simplemente devolverá undefined o un error una vez que lo ejecute dentro de mi app.js.

NOTA: Lo siento si esta es una pregunta simple o incluso tonta, pero soy bastante nuevo considerando la administración de bases de datos con Mongoose y aunque tengo ALGUNA experiencia con JS, no soy exactamente un profesional en eso.

Si alguno de ustedes necesita un código adicional proporcionado para responder a la pregunta, no dude en preguntarme y lo haré. Además, todavía no puedo +repetir respuestas, pero siempre las aprecio :)

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su método existsWithId devuelve un valor de forma asíncrona para que pueda devolverle la llamada y obtener el resultado de esta manera:

 UserSchema.statics.existsWithId = function(id, cb) { this.count({ _id: id }, function(err, count) { cb(err, count > 0); }); } User.existsWithId("5882c3be5aad09028d4d8b46", function(err, res) { console.log(res); });
over 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