将 mongodb 集合项添加到不和谐嵌入

Posted

技术标签:

【中文标题】将 mongodb 集合项添加到不和谐嵌入【英文标题】:Adding mongodb collection item to discord embed 【发布时间】:2019-07-18 06:02:28 【问题描述】:

我想使用 MongoDB ForEach 函数将我的集合文档添加到嵌入中。

当我想将字段添加到 foreach 内的嵌入时,它会发送嵌入并跳过和添加字段。当我安慰记录它时,似乎代码发送了消息,然后添加了字段。

     const Discord = require("discord.js");
    const mongoDb = require("mongodb").MongoClient;

    let showEmbed = new Discord.RichEmbed();
    let proccess = 0;

    module.exports.show = (message, page) => 


            mongoDb.connect('mongodb+srv://admin:31045@robot-xi9jt.gcp.mongodb.net/eco?retryWrites=true', 
                useNewUrlParser: true
            , function (err, db) 
                if (err) console.log(err);
                let dbo = db.db("eco");
                dbo.collection("items").find(
                    itemPage: page
                ).forEach(function (doc) 
                    console.log(`$doc.itemName : $doc.itemPrice :  $doc.itemDescription`)
                    showEmbed.addField(`**$doc.itemName** | $$doc.itemPrice`, doc.itemDescription, false);
                )
            );
message.channel.send(showEmbed);
        

【问题讨论】:

【参考方案1】:

如果您查看 MongoDB 文档,您会看到 mongoDb.connect returns a Promise。这意味着您的代码将连接到您的数据库,但它会在后台这样做。同时它将继续处理您的其余代码,因此它将在添加所有字段之前发送嵌入。

您可以通过将message.channel.send 移动到 Promise 中来轻松解决此问题,如下所示:

const Discord = require("discord.js");
const mongoDb = require("mongodb").MongoClient;

let showEmbed = new Discord.RichEmbed();
let proccess = 0;

module.exports.show = (message, page) => 
  mongoDb.connect('Your connect URL here',  useNewUrlParser: true , function (err, db) 
    if (err) console.log(err);
    let dbo = db.db("eco");

    dbo.collection("items").find(
      itemPage: page
    ).forEach(function (doc) 
      console.log(`$doc.itemName : $doc.itemPrice :  $doc.itemDescription`)
      showEmbed.addField(`**$doc.itemName** | $$doc.itemPrice`, doc.itemDescription, false);
    );

    message.channel.send(showEmbed);
  );

【讨论】:

以上是关于将 mongodb 集合项添加到不和谐嵌入的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB

如何使用谷歌助手 IFTTT 将 webhook 发送到不和谐

如何通过 webhook 将 heroku 日志发送到不和谐?

mongodb中链接文档的语法

将计算机信息发送到不和谐机器人

用于将图像从 Imgur 拉到不和谐机器人中的 API