【问题标题】:Using MongoDB query to show all items in a Collection with a specific value (DiscordJS v13)使用 MongoDB 查询显示集合中具有特定值的所有项目(DiscordJS v13)
【发布时间】:2022-02-09 06:04:50
【问题描述】:

我正在尝试为我的 discord 机器人 (Discord.js v13) 发出最后一条命令,这是一个带有名为“Perso”的 MongoDB 集合的市场。

问题是我真的不知道如何让它工作,即使在阅读了 MongoDB 和 mongoose 文档之后,也在 Stack Overflow 上搜索了类似(不是真的)问题。

这是我为测试返回值所做的一小段代码:

    let persoOnSale = await Perso.count({ onSale: 1}); // There are 2 "Perso" with the "onSale" field equals to 1.
    let perso = Perso.find({ onSale: 1}, 'name value').sort({value: 1});


     for (let index = 0; index < persoOnSale; index++) {
         const element = perso[index];
         console.log(element); // element return "undefined", 2 times.
        
     }

这是 console.log 返回时的 console.log(perso) :

[
  {
    _id: new ObjectId("61fc60165a048fa5700de25d"),
    name: 'Perso Name',
    value: 160
  },
  {
    _id: new ObjectId("61fbe486ef3f2c2b31c57dc5"),
    name: 'Perso Name 2',
    value: 10000
  }
]

我试图用 (onSale: 1) 显示所有“Perso”,显示它们的名称和价值,然后对它们进行排序,以便首先显示价值最少的“Perso”。

首先,我想我需要在“perso”数组上放置一个索引,但我显然不知道该怎么做。

非常感谢您的帮助。

【问题讨论】:

    标签: javascript node.js mongodb discord.js


    【解决方案1】:

    我刚发现。

    我必须在“Perso.find”之前放置一个等待

    let perso = await Perso.find({ onSale: 1}, 'name value').sort({value: 1});

    (现在,找到了“Persos”)。

    那么,我必须补充一点:

    const element = perso[index].name;
    const value = perso[index].value;
    

    【讨论】:

    • 是的,做得好完全有道理,说实话我也没注意到!
    【解决方案2】:

    我猜你的问题来自findOne() 的使用而不是find()

    试试这个:

        let persoOnSale = await Perso.count({ onSale: 1});
        let perso = Perso.find({ onSale: 1}, 'name value').sort({value: 1});
    
    
         for (let index = 0; index < persoOnSale; index++) {
             const element = perso[index];
             console.log(element);
            
         }
    

    【讨论】:

    • 结果仍然是“未定义”,两次。一开始我用了find(),分享代码的时候忘记放回去了,抱歉。
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2020-05-07
    相关资源
    最近更新 更多