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

299
Vistas
Se obtiene un error de esquema no válido cuando se tiene una matriz de objetos de esquema de mongoose

Aquí está mi esquema para userPost.js:

 const mongoose = require("mongoose"); let userPostSchema = new mongoose.Schema({ id:{ type: mongoose.Types.ObjectId }, body:{ type: String } }, {timestamps: true}); const UserPost = mongoose.model("post", userPostSchema); module.exports = UserPost;

Aquí está mi esquema para userAccount.js:

 const userPost = require("./UserPost"); const mongoose = require("mongoose"); let userAccountSchema = new mongoose.Schema({ id:{ type: mongoose.Types.ObjectId }, name:{ type: String }, posts: { type: [userPost] } }, {timestamps: true}); let userAccount = mongoose.model("account", userAccountSchema); module.exports = userAccount;

Recibo el error de las publicaciones:

 node_modules\mongoose\lib\schema.js:984 throw new TypeError('Invalid schema configuration: ' + ^ TypeError: Invalid schema configuration: `model` is not a valid type within the array `posts`.See http://.../mongoose-schematypes for a list of valid schema types. at Schema.interpretAsType (C:\Users\BackEnd\node_modules\mongoose\lib\schema.js:984:15) at Schema.path (C:\Users\BackEnd\node_modules\mongoose\lib\schema.js:677:27) at Schema.add (C:\Users\BackEnd\node_modules\mongoose\lib\schema.js:495:12)

Tengo 2 esquemas, userPost.js, que estoy usando en userAccount.js. Cuál es el problema ?

¿Por qué recibo el siguiente error:

TypeError: configuración de esquema no válida: el model no es un tipo válido dentro de las posts de matriz

Intenté consultar el siguiente enlace, especialmente el extracto del tercer código de la documentación oficial de Mongoose: https://mongoosejs.com/docs/schematypes.html#arrays

Cambié el siguiente código:

 posts:[ { type: userPost } ]

A:

 posts: { type: [userPost] }

pero sigue recibiendo el mismo error.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

No estoy seguro, pero este puede ser el caso siempre que se refiera a otro modelo, siempre debe usar la palabra clave de referencia de mangosta y luego usar la información de ese modelo para crear una matriz.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Debe tener su esquema de la siguiente manera:

 const userPost = require("./UserPost"); const mongoose = require("mongoose"); let userAccountSchema = new mongoose.Schema({ id:{ type: mongoose.Types.ObjectId }, name:{ type: String }, posts: [userPost] }, {timestamps: true}); let userAccount = mongoose.model("account", userAccountSchema); module.exports = userAccount;

posts no necesita una declaración de tipo.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dos cosas que tienes que recordar:

  1. Primero, debido a que está creando un esquema y no está cambiando su esquema en las aplicaciones, no se recomienda usar let . en su lugar, intente almacenar su esquema en una variable Const .
  2. Las "publicaciones" son una matriz, simplemente puede escribir su esquema en una matriz y no usar tipos. Además, debe usar el esquema en otro esquema. Puedes cambiar tu código con:

 const mongoose = require("mongoose"); export const userPostSchema = new mongoose.Schema({ id:{ type: mongoose.Types.ObjectId }, body:{ type: String } }, {timestamps: true}); const UserPost = mongoose.model("post", userPostSchema); module.exports = UserPost;

y entonces:

 import {userPostSchema} from "./UserPost" ; const mongoose = require("mongoose"); const userAccountSchema = new mongoose.Schema({ id:{ type: mongoose.Types.ObjectId }, name:{ type: String }, posts: [userPostSchema] }, {timestamps: true}); let userAccount = mongoose.model("account", userAccountSchema); module.exports = userAccount;

about 4 years ago · Juan Pablo Isaza 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