gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:14:55 27 4
gpt4 key购买 nike

我想使用 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);
}

最佳答案

如果您查看 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);
});
}

关于javascript - 将 mongodb 集合项添加到不和谐嵌入中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com