2017-06-29 59 views
1

有人能告诉我怎么能从这个查询,count()和产品列表中得到响应吗?在json中返回不止一个结果来自查询

因为这时它只能回到我的磁盘阵列和限制,我想算()没有限制,所有产品:

数组[对象,对象,对象,目标,对象]

router.get('/products', function (req, res) { 

    var size = parseInt(req.query.pageSize); 

    if (req.query.pageNumber == 1) { 
    var page = 0; 
    } else { 
    var page = parseInt(req.query.pageNumber) * req.query.pageSize - req.query.pageSize; 
    } 

    Product.count() 
    .exec(function (err, products) { 
     if (err) { 
     res.status(404).json({ 
      message: 'Can not download this list' 
     }) 
     } else { 
     Product.find().skip(page).limit(size) 
      .exec(function (err, products) { 
      if (err) { 
       res.status(404).json({ 
       message: 'Can not download this list' 
       }) 
      } else { 
       res.json(products); 
      } 
      }) 
     } 
    }) 
}); 
+2

这**是**你怎么做到的。每个数据库引擎都是这样做的。您不能在结果的“页面”中包含总数,而无需执行某些非常愚蠢的操作,并尝试将整个结果集压缩到单个文档中。用MongoDB打破了实际情况下的BSON限制。您可以使用承诺来清理嵌套。但是你的基本输出应该是:'res.json({“count”:count,“products”:products})'然后你就完成了。 –

+0

你的意思是你想要从数据库中获得总数为n的文档,并且在响应中有限的文档 –

回答

1

你可以这样做:

res.json({ "key1": value1, "key2": value2})