簡體   English   中英

如何將值從 MongoDB 導入 Discord 嵌入?

[英]How do I import values ​from MongoDB into a Discord embed?

我在 mongoDB 數據庫中有我需要的所有數據,我只是不知道如何在 Discord 嵌入中發送部分數據。 例如數據:

new birthdaySchema({
  User: username.username,
  Birthday: birthdayString, 
  Month: showMonth,
  Day: showDay, 
  Year: showYear

Year, Month 和 Day 只是用來對生日進行排序,birthdayString = Day of Month

我也使用時刻時區(UTC)

const dateTime = moment.utc().format(`DD MM YYYY, hh:mm:ss`);

我的目標是使用像 /next-birthdays 這樣的斜線逗號嵌入中的數據應該看起來像

${birthdayString} ${Year}\n${User} (這 10 次,所以即將到來的 10 個用戶的生日)

如果生日和時刻時區 (UTC) 中的實際日期和時間匹配。 然后 Bot 應該使用標題(生日快樂)和描述( Today is ${User}'s Birthday, blah blah blah )進行新的嵌入,最后它應該給該用戶在此服務器上的生日角色。

希望可以有人幫幫我 :)

我有類似的東西可以幫助你:) 這是通過使用mongoose 庫(我猜你可能正在使用)來實現的。

在我的代碼中,我引用了保存我的架構的 JS 文件:

const Messages = require("../models/benSchema2");

然后,您可以有一個變量並將數據庫中的所有條目以數組形式存儲在其中,如下所示:

const messageOrdered = await Messages.find({}).sort({ messages: -1 });

(就我而言,我從數據庫中獲取所有條目,按消息的降序排序。也許您可以根據生日字符串對其進行排序?)

然后你可以有一個 for 循環,從 i=0 開始,到 9 停止,這應該得到最近的 10 個生日。 我在這里有我的代碼,但可以對其進行重構以提高效率。 此外,我的代碼基於存儲在數據庫中的用戶 ID 數據工作,但它應該能夠通過改進它以處理用戶名來工作。

let content = "";
    for (let i = 0; i < messageOrdered.length; i++) {
      if (i === 5) {
        break;
      }

      const userID = await client.users.fetch(messageOrdered[i].UserID);
      let user = userID.username;

      if (i === 0) {
        content += `🥇 ${i + 1}: ${user} - ${messageOrdered[i].messages}\n`;
      } else if (i === 1) {
        content += `🥈 ${i + 1}: ${user} - ${messageOrdered[i].messages}\n`;
      } else if (i === 2) {
        content += `🥉 ${i + 1}: ${user} - ${messageOrdered[i].messages}\n`;
      } else {
        content += `🎖️ ${i + 1}: ${user} - ${messageOrdered[i].messages}\n`;
      }
    } (bit spaghetti code but oh well :))

一旦你得到最接近的 10 並且它們都被添加到內容字符串中,那么在你的最終 MessageEmbed 中你可以這樣做:

.addField("Global Positions (Text):", content)

然后最后發送。 我希望這有所幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM