mongodb - Foreach 文件猫鼬
问题描述
我正在尝试遍历 mongodb 集合中的所有文档。
这就是我所拥有的。
module.exports = {
name: `store`,
aliases:['shop'],
/**
* @param {Client} client
* @param {Message} message
* @param {String[]} args
*/
run: async(client, message, args) => {
const exampleEmbed = new Discord.MessageEmbed()
.setColor('#0099ff')
.setTitle('Boblox Shop')
.setDescription('Buy stuff with $buy <id>')
const items = require('./shop')
items.find({}).then(function(documents) {
documents.forEach(function(u) {
exampleEmbed.addField(`${u.ItemName}`, `Price: ${u.Price}`)
});
})
.setTimestamp()
}
}
商店是一种模式。这是商店的代码
const mongoose = require("mongoose")
const commandsRan = mongoose.Schema({
ItemName:String,
Price:Number,
Stock:Number,
Rarity:String,
Description:String,
Emoji:String
})
module.exports = mongoose.model("Shop", commandsRan, 'shopitems')
当我运行代码商店命令时,我收到此错误:TypeError: items.find(...).then(...).setFooter is not a function
如何遍历集合中的每个文档并将字段添加到嵌入?
解决方案
因此,首先,我意识到您的代码片段不是您正在运行的确切代码,因为抛出的错误提到了 ...setFooter 的错误,并且代码片段中甚至没有提到函数 setFooter 。还有一个杂散的 setTimestamp 函数,在 的末尾items.find()
,您可以将其移动到嵌入的末尾。
module.exports = {
name: `store`,
aliases:['shop'],
/**
* @param {Client} client
* @param {Message} message
* @param {String[]} args
*/
run: async(client, message, args) => {
const exampleEmbed = new Discord.MessageEmbed()
.setColor('#0099ff')
.setTitle('Boblox Shop')
.setDescription('Buy stuff with $buy <id>')
.setTimestamp();
const items = require('./shop');
items.find({}).then(function(documents) {
documents.forEach(function(u) {
exampleEmbed.addField(`${u.ItemName}`, `Price: ${u.Price}`);
});
})
}
}
我通常只是重新格式化代码,并将函数转移setTimestamp
到 MessageEmbed 构造函数的末尾,items.find 应该没有任何问题。
推荐阅读
- laravel - Laravel 7 将 React.js 添加到没有 composer 的项目需要 laravel/ui?
- python - Nominatim 在为其分配变量后返回配置错误
- sql - SQL如何通过动态变量名调用用户定义的函数
- csv - 如何使 Kotlin Jackson CSV 阅读器将列名映射到 POJO?
- sql - 查询用于查找 hive 表中时间序列数据的前一个时间点不可用的新值
- java - 双重给予奇怪的数字
- java - 单击后退箭头按钮时,Android 应用程序没有响应
- css - CSS 类选择器不起作用,但是当我将它设为 ID 时它起作用?
- node.js - Ionic/Angular 没有正确连接到 nodeJS(路由在邮递员中完美运行
- python - sagetex: SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXXXX escape