MongoDB查询返回一个空数组,但不返回另一个空数组

MongoDB查询返回一个空数组,但不返回另一个空数组,mongodb,Mongodb,我正在开发一个基本的应用程序,它可以返回基于流派和子流派的书籍列表。但是,当我在postman上测试后端时,它返回一个空数组,我不确定这是否与我的路由或生成此列表的实际代码有关 这就是我的路线 // get books based on the genre router.get('/books/:genre', bookBuilder.get_some_books) // get books based on multiple queries router.get('/book

我正在开发一个基本的应用程序,它可以返回基于流派和子流派的书籍列表。但是,当我在postman上测试后端时,它返回一个空数组,我不确定这是否与我的路由或生成此列表的实际代码有关

这就是我的路线

  // get books based on the genre
  router.get('/books/:genre', bookBuilder.get_some_books)

  // get books based on multiple queries
  router.get('/books/:genre&subgenre', bookBuilder.get_these_books)
这是查询我的MongoDB数据库的代码

// getting book by genre & subgenre
exports.get_these_books = async function (req, res) {
  let { genre, subgenre } = req.params;
  try {
    let books = await Book.find({"genre": genre, "subgenre": {$all: [subgenre]}});
    if (books) {
      res.json(books)
    } else {
      res.status(404).send({error: 'Not Found'});
    }
  } catch (err) {
    res.status(500).send({error: err.message});
  }
}
按体裁列出一份书单就行了。但事实证明,通过体裁和亚体裁的学习是很困难的

编辑:

示例文档是

title:"Ghost Squad"
author: Array
genre:"MG"
subgenre: Array
    0:"Ghost Story"
    1:"Fantasy Fiction"
description:"Shortly before Halloween, Lucely and her best friend, Syd, cast a spel..."

如您所见,子类型是一个数组。

1)发布示例文档,2)模式中的
子类型字段的类型是什么3)显示
控制台.log(子类型)
输出。@turivishal我已经添加了编辑。但是console.log(子类型)没有显示任何内容somehow@Rhys我不确定是否可以传递两个参数来表示如下路线:
/books/:genre&subgenre
。在
let{genre,subgenre}=req.params行之后放置console.log(subgenre)什么也没收到?@ngKhoaĐinh你说得对,我需要改变快车路线。我把它改成了/books/:genre/:subgenre,这样效果更好