I try to build a database for a giveaway bot using MongoDB. Once a new giveaway is created the bot runs the following code to write the new giveaway into the databank:
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()
}
Giveaways should be a nested document in the document with the server’s information. My schemas for this looks like this:
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);
In my Mongo Atlas I have 2 collections mainSchema
und giveawaySchema
. If I run this code I only get an entry under ‘giveawaySchema’ consisting of this:
_id: ObjectId(62b4f6374894fb3e7826ca72)
__v:0
I don’t get any data in the mainSchema
collection. Does anyone know what is the error? Thank you for your help in advance.
2
Answers
in your first code you don’t have to put mongoose module between brackets (i don’t know if it’s okay)
and you are importing giveawaySchema not mainSchema
because you are overwriting it you should do this
and if you still have problem just tell me
Good luck …
You should change your models exports to:
Then, try to create the
Giveaway
entity before theMain
one, and add that one to the newMain
document: