Arrays 如何使用mongoose获取数组而不是对象?

Arrays 如何使用mongoose获取数组而不是对象?,arrays,mongoose,Arrays,Mongoose,我使用Mongoose通过这个get函数从数据库中获取数据 router.get("/:id", async (req, res)=> { const products = await Product.findOne({slug: req.params.id}); if (products) { res.send(products); } else { res.status(404).send({message:"product n

我使用Mongoose通过这个get函数从数据库中获取数据

router.get("/:id", async (req, res)=> {
  const products = await Product.findOne({slug: req.params.id});
  if (products) {
    res.send(products);
  } else {
    res.status(404).send({message:"product not found"})
  } 
});
输出似乎是一个对象。但是,我需要一个数组,因为我在进一步的代码中使用了slice()方法

我尝试了:var ready=Object.keys(products.map((key)=>[Number(key),products[key]])


是否有任何函数可以用来生成数组,而不是对象或另一个mongoose函数来获取数组?

更简单的方法是使用
find
,因为它总是返回数组。就你而言:

const products = await Product.findslug: req.params.id});
还要注意,
if(products){
现在将始终返回
true
,因此您可能需要更新到
if(products.length){
(如果您至少需要一个文档)



还有一个
aggregate
方法也可以返回数组,但通常用于更高级的查询。如果您的查询像您提供的那样简单,您不需要在这里使用
aggregate

lel始终有一个简单的方法。谢谢!