##Como colocar a mongo db em seu botJS Requisitos https://cloud.mongodb.com/ Conta no mongo https://www.npmjs.com/package/mongoose npm i mongoose https://discordjs.guide/keyv/#command-handler Tutorial de bot Handler
##Criando Conta
Ao entrar no site do MongoDB Atlas vá em "Sign-in" ou em "Try Free" e crie sua conta com os seus dados (Não precisa de cartão, é totalmente gratuito). Logo após você criar a conta, o Cluster irá ser criado automáticamente, que é onde fica a sua Database.
Ok Agora, vamos começar a configurar!
- Clique em Security, e depois vá a DataBase Acess
OBS: Lembre da senha q vc criou no + ADD NEW USER Para funcionar a database
2- Agora precisamos liberar as conexões. Na mesma aba do Security, tem a barrinha onde diz "Network Acess", vá nessa categoria e coloque o endereço de ip Global
Pronto! já estabelecemos a conexão, criamos o usuário e agora é só conectar na database e usar ela. Sabe a barrinha onde você clicou no Security?? Então, volte agora para a telinha inicial, no "Cluster" e clique em Connect:
Irá aparecer 3 alternativas de uso, escolha a do meio. Onde faz a conexão com o aplicativo ("Connect Your Application")
Após escolher uma das alternativas de como iremos usar a conexão através do mongo, agora só precisamos pegar o link gerado que o mongo nos dá (Não divulgue seu link para ninguém).
Nisso você criou a Conta, fez o usuário, manteve as conexões abertas e agora pegou o link de conexão. O que falta mais? bom... usarmos isso no código né
##Aplicando o Mongoose no código
Bom, lembra do nosso código base do bot usando a npm Discord.js? então, porque não usar ele como exemplo? Crie um arquivo chamado "database.js", será onde irá ficar a conexão com a Mongo Atlas e o sistema de troca de documentos!
Dentro do arquivo "database.js", iremos colocar o código onde fará a ligação com o Mongo Atlas, e a estrutura em schema do nosso documento (pequeno exemplo):
const mongoose = require("mongoose") // faz requisicao do mongoose
const Schema = mongoose.Schema // só para deixar bonitinho
mongoose.connect("Link de sua conexão", { // Onde pegamos o link, da conexão em Cluster
useNewUrlParser: true
}).then(function () { // Caso Logue Corretamente
console.log('\x1b[32m[ BANCO DE DADOS ] \x1b[0mBanco de dados foi ligado')
}).catch(function () { // Caso de ERRO
console.log('\x1b[31m[ BANCO DE DADOS ] \x1b[0mBanco de dados desligado por erro')
})
// Iremos fazer um pequeno databse do usuário:
const User = new Schema({
_id: { String, required: true }, // ID Do Usuário
rank: { Number, default: 1 }, // Rank do Usuário
xp: { Number, default: 0 }, // Xp do Usuário
money: { Number, default: 0 },
coins:{ Number, default: 0}
// Dinheiro do Usuário
})
/* Colocamos assim, o nome do que queremos (que nem um Objeto sabe?)
money: { type: Number, default: 0 },
Type: será o formato dele (Number = Número, String = Texto, Boolean = true/false)
default: será o valor inicial que todos irão ter
required: è que é NECESSÀRIO TER
*/
// Aqui é a exportação. para usar essa base do documento, fora desse código (Troca de documentos)
exports.Users = mongoose.model("Users", User)
Ok, temos o código onde faz a conexão com o Mongo e uma pequena base de um documento para o usuário, mas agora falta a gente fazer o uso disso!
Iremos criar um evento, em que quando o usuário enviar uma mensagem, o seu banco de dados será adicionado, ou irá ser modificado, com um pequeno sistema de Dinheiro, Xp e Level:
Adcione esse code
dentro da index.js
const Database = require("./database.js")
// Vamos fazer com que, a cada mensagem enviada pelo usuário, ele irá ganhar DINHEIRO XP e upará de nivel
<client>.on("message", message => {
if (message.author.bot) return // Retorna caso não seja bot
// Database.Users ( Database é a conta que usamos ) e ( Users é a exportação que deixamos no código do "database.js")
Database.Users.findOne({ _id: message.author.id }, (erro, documento) => { // Procura na database o documento do usuário, pela id dele
if (documento) { // Caso Encontre o documento, executará esse código:
documento.coins += 1 // Dinheiro do usuário, será adicionado +1
documento.xp += 10 // XP +10
if (documento.xp > documento.level * 350) { // Caso o documento.xp teja chegado no limite dele, q é level*350
documento.xp = 0 // o Xp vai pro 0
documento.level += 1 // e o level sobe +1
}
documento.save() // No fim de tudo, o documento será salvado
} else { // Caso o Usuário não tenha ainda um documento salvo na Database
new Database.Users({
_id: message.author.id,
}).save()
}
})
})
Bom, então é isso. É um pequeno tutorial de como criar, conectar e usar o Mongo Atlas. OBS: Caso der erro que seu banco de dados está desligado por erro, coloca no lugar de , a senha q vc deu para vc msm o, admin do acesso da database. ex: mongodb+srv://glorus:kolerlol@Censurei para ngm tentar pegar o link