• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

107
Views
Buscar y actualizar valores dinámicos MongoDB

Estoy codificando un bot de Discord en java script ahora mismo. Uso MongoDB para almacenar un valor de "calor" para cada usuario en mi servidor. (El "sistema de calor" agrega una cierta cantidad a un porcentaje cada vez que el usuario hace algo mal y se lo quita después de un tiempo, para ser más específicos: -5 por ciento cada minuto en mi ejemplo).

Para hacer eso, quiero usar Model.updateMany() en un bucle. Como puede ver a continuación, utilicé el parámetro de filtro para encontrar todos los documentos relacionados con mi servidor. La pregunta ahora es cómo puedo quitar este 5% del valor almacenado porque no es estático, sino dinámico.

 const { Client } = require('discord.js'); const mongoose = require('mongoose'); //using modules and event handlers module.exports = { name: 'ready', /** * @param {Client} client */ async execute(client) { const heatdb = require('/app/models/heatDB.js'); //how often the loop should pe repeated const interval = 10 * 60 * 1000; console.log('Client ready.') //connnecting my data mongoose.connect( 'I put the mongoose link here', { useNewUrlParser: true, useUnifiedTopology: true }).then(() => { console.log('Data connected.') }).catch((err) => { console.log(err) }); //loop begins here setInterval(function(){ //filtered so that it's only searching for documents having the guild ID in it heatdb.updateMany({ GuildID: "000000000000000000"}, {Heat: parseInt(/*needed value*/) - 5}}) }, interval); }, };

Y también vea cómo se construye mi modelo a continuación:

 const { Schema, model } = require('mongoose'); module.exports = model("heatDB", new Schema({ GuildID: String, UserID: String, Heat: String, }))

Si necesitas algo más para ayudarme, por favor házmelo saber.

Gracias de antemano,

Hidra

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si su valor de calor es un número en el esquema en lugar de una cadena, puede intentar esto:

 heatdb.updateMany({ GuildID: "000000000000000000"},{$mul:{"Heat":0.95}})

Explicación: desea reducir el Calor cada vez un 5% por ciento, luego puede usar el operador mul y establecer su valor de calor al 95% del valor actual. Le dará una deducción del 5% cada vez.

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error