.toArray不起作用

时间:2019-06-13 19:37:30

标签: javascript mongodb

我的数据库中有20多种产品,因此我试图显示所有产品,所以我就使用了

 Product.find({}).toArray(function(err,data){
  if(err){
      res.send(err)
  }
  if(data){
      res.send(data)
  }
 }

但我遇到错误

TypeError: Product.find(...).toArray is not a function

所以我用了

Product.find({},function(err,products){
  if(err){
      res.send(err)
  }
  if(products){
      res.send(products)
  }
})

,但仅打印出20种产品。所以我尝试了

Product.find({},function(err,products){
  if(err){
      res.send(err)
  }
  if(products){
      res.send(products)
  }
}).limit(300)

但它仍然可以打印出20种产品

2 个答案:

答案 0 :(得分:0)

使用承诺而不是使用回调

尝试一下:

Products.find().then(products => {
  res.send({ products })
}).catch(err => {
  res.send({ err })
})

它应该检索所有产品,而不是20

如果仅检索20个,请使用.count()方法检查您有多少

答案 1 :(得分:0)

您应该在limit呼叫之前添加诸如toArray之类的选项。另外,我假设您所包含的mongodb库设置了默认限制。

此代码示例应为您提供300种产品:

Product
 .find({})
 .limit(300)
 .toArray(function(err,data) {
   if (err) {
     res.send(err);
   } else if (data) {
     res.send(data);
   }
)};

有关参考,请参见mongodb-native #find和/或mongodb-native Cursor