猫鼬过滤器发送任何数据

Posted

技术标签:

【中文标题】猫鼬过滤器发送任何数据【英文标题】:Mongoose filter sending any data 【发布时间】:2021-09-08 11:59:01 【问题描述】:

所以我有这段代码

// GET request for pokedex page
app.get("/pokedex", function (req, res) 
    Pokemon.find(function (err, pokemon) 
        if (err) 
            console.log(err);
         else 
            console.log(pokemon);
            res.render("pokedex",  pokemon: pokemon );
        
    );
);

它把数据发送到前端就好了。数据也会被正确记录到控制台。问题是当我在回调之前添加 information: primaryType: "Grass" , 时,它不会发送任何数据。唯一记录的是空数组,但我正在尝试过滤数据。

我正在使用 JS、Node、Express 和 EJS。我也对其他过滤数据的方法持开放态度。

型号

[
  
    information: 
      name: 'Bulbasaur',
      dexNumber: 1,
      primaryType: 'Grass',
      secondaryType: 'Poison',
      description: 'There is a plant seed on its back right from the day this Pokémon is born. The seed slowly grows larger.',
      devolvedForm: null,
      evolvedForm: 'Ivysaur'
    ,
    stats: 
      health: 45,
      attack: 49,
      specialAttack: 65,
      defense: 49,
      specialDefense: 65,
      speed: 45
    ,
    _id: 609cdab515102582ccf4e743,
    __v: 0
  ,

【问题讨论】:

你能展示你的模型吗? @CuongLeNgoc 我已将其添加到我的帖子中 【参考方案1】:

在这种情况下,您需要使用点符号进行过滤:

Pokemon.find( "information.primaryType": "Grass" ...

【讨论】:

谢谢。这行得通。我之前尝试过点符号,但我没有使用引号。直到现在我还没有看到它的例子,甚至在猫鼬文档mongoosejs.com/docs/api.html#model_Model.find 中也没有。感谢您的帮助! 如果您通过搜索找到了答案,您介意告诉我在哪里吗? 它在 mongodb 文档中,而不是 mongoose:docs.mongodb.com/manual/core/document/#dot-notation

以上是关于猫鼬过滤器发送任何数据的主要内容,如果未能解决你的问题,请参考以下文章

基于下拉选择在客户端使用 EJS 过滤猫鼬数据

按猫鼬中的引用属性过滤[重复]

我必须过滤带有数组的数组的猫鼬数据?

如果给定参数,猫鼬聚合过滤器

根据打字稿中的请求参数设置猫鼬的查询过滤器

按猫鼬中的孙子属性过滤