我如何使用猫鼬获取数组而不是对象?

第二

我使用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]]));

我可以使用任何函数代替对象或其他猫鼬函数来创建数组吗?

Gytis TG

更简单的方法是使用find因为它总是返回一个数组。在您的情况下:

const products = await Product.findslug: req.params.id});

还要注意,if (products) {现在它总是会返回true,因此您可能需要更新到if (products.length) {(如果需要至少1个文档)。


也有aggregate可用方法,该方法也返回一个数组,但通常用于一些高级查询。如果您的查询与您提供的一样简单,则不需要aggregate此处。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章