Trato de construir una base de datos para un bot de regalo usando MongoDB. Una vez que se crea un nuevo sorteo, el bot ejecuta el siguiente código para escribir el nuevo sorteo en el banco de datos:
const {mongoose} = require("mongoose") const mainSchema = require('../models/mainSchema') module.exports = { async execute(interaction){ await new mainSchema ({ guild_id: 1234567890, giveaways: [{ identifier: 34, destination: 987654321, }], }).save() }
Los sorteos deben ser un documento anidado en el documento con la información del servidor. Mis esquemas para esto se ven así:
const mongoose = require("mongoose"); const giveawaySchema = new mongoose.Schema({ identifier: String, destination: String, duration: String, price: String, }) const mainSchema = new mongoose.Schema({ guild_id: String, log_channel_id: String, twitterPreferncesType: String, twitterPreferncesFollowing: Boolean, giveaways: [giveawaySchema], }); module.exports = mongoose.model("mainSchema", mainSchema); module.exports = mongoose.model("giveawaySchema", giveawaySchema);
En mi Mongo Atlas tengo 2 colecciones mainSchema
y giveawaySchema
. Si ejecuto este código, solo obtengo una entrada en 'giveawaySchema' que consiste en esto:
_id: ObjectId(62b4f6374894fb3e7826ca72) __v:0
No obtengo ningún dato en la colección mainSchema
. ¿Alguien sabe cuál es el error? De forma anticipada, muchas gracias por su ayuda.
en su primer código no tiene que poner el módulo mongoose entre paréntesis (no sé si está bien) y está importando giveawaySchema no mainSchema porque lo está sobrescribiendo, debe hacer esto
// module.exports = mongoose.model("mainSchema", mainSchema); // module.exports = mongoose.model("giveawaySchema", giveawaySchema); // Wrong you are overwriting on the exports // do this instead const MainSchema = mongoose.model("mainSchema", mainSchema); const GiveawaySchema = mongoose.model("giveawaySchema", giveawaySchema); module.exports = {MainSchema,GiveawaySchema} // and import it like this // const { MainSchema,GiveawaySchema} = require('./<pathOfTheFile>')
y si aun tienes problema solo dime Buena suerte...