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.
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.
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.
Dos cosas que tienes que recordar:
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;