【发布时间】:2016-08-13 15:31:58
【问题描述】:
背景
JSON 文件是从带有 mongoose ODM 的 mongoDB 生成的。但是我很难在 if 语句中添加猫鼬查询,因为我遇到了很多错误。
JSON 方法
使用这种方法,我将 mongoDB 集合缓存到 JSON 文件中,尝试读取 id。
我有一个 mods.json 文件,看起来像这样(对象数组):
[
{
"userid": "58258161"
},
{
"userid": "135207785"
},
{
"userid": "268339963"
},
{
"userid": "210152609"
}
]
上面的 JSON 文件包含允许执行某个 Telegram Bot 命令的用户列表。
var config = require('./config.json');
var mods = require('./mods.json');
bot.onText(/\/test/i, function (msg) {
var fromId = msg.from.id;
var chatId = msg.chat.id;
for (index in mods) {
if (fromId == config.owner || mods[index].userid) {
console.log('You Are A Mod!');
} else {
console.log('Not A Mod');
bot.sendMessage(chatId, 'You are not a mod');
}
}
});
对上述工作原理的简要说明:
当机器人收到“/test”命令时,它应该检查消息是来自 id 存储在 config.json 文件中的所有者,还是来自其唯一 id 存储在 mods.json 文件中的任何版主。
问题
以下代码检查每个 id 以确认消息是否来自 mod。随后吐出多条“你不是模组”的消息。在条件语句“if”中确认用户是 mod 的最佳方法是什么。
Mongo 方法
当使用 moongose 查询需要回调时,我不知道如何在这种情况下创建 if 条件。但是在这种情况下,这种方法显然会更好。
【问题讨论】:
-
如果可以的话,您应该尝试让 mongoDB 查询正常工作,因为它就是为此而构建的。您可以发布这些错误,我们可以提供帮助。
-
检查上面的编辑
-
做了一个自定义的mongoose方法可以尝试查找
-
我的建议是,与其拥有一个对象数组,不如只拥有一个对象。这是它的样子: mods = { "58258161": { //这里有额外数据 }, "135207785": {}, "268339963": {}, "210152609": {} };这样,如果您需要检查任何用户是否是版主,您可以获取
Object.keys(mods),它返回一个键数组(在本例中为版主 ID),您可以简单地检查 ID 是否位于该数组中。注意:抱歉,格式错误
标签: javascript arrays if-statement indexing mongoose