如何限制显示的对象数量?

Posted

技术标签:

【中文标题】如何限制显示的对象数量?【英文标题】:How to limit the numbers of objects displayed? 【发布时间】:2019-11-01 03:39:46 【问题描述】:

如何限制通过 Mongoose 显示的结果?我只想显示我的结果数组的前 5 个对象,包含在 Carauction Schema 中:

router.get('/app/:cars_getroute', ensureAuthenticated, (req, res, next) => 
Promise.all([Car.findOne( cars_getroute: req.params.cars_getroute ), Carauction.findOne( cars_getroute: req.params.cars_getroute ), Carauctionstats.findOne(cars_getroute: req.params.cars_getroute)])
    .then(result => 
        const [cars, carauctions, carauctionstats] = result;

        if (User.isCharged = true) 
            res.render('app/fichecar', 
                results: carauctions.results,
        )...

我的架构:

const CarauctionSchema = new Schema(
    objectID: 
        type: Number
    ,
    cars_getroute: 
        type: String
    ,
    gm_url: 
        type: String
    ,
    "results": 
        type: [
            marque: 
                type: String
            ,
            model: 
                type: String
            ...]
    

我想限制为 10 个结果对象。我试过 Carauction.find(carauctions.results).limit(10) 但它不起作用。

然后我用把手渲染结果项:

#each results as |auction|

                    <a target="_blank" rel="noopener noreferrer" href="auction.auction_url" class="results__box--hover">
                        <div class="results__container--box">
                            <div class="results__container--img">
                                <img src="auction.image_urls">
                            </div>
                            <div class="results__container--left">
                                <div class="results__container--model">
                                    <span>auction.model_year auction.marque auction.model</span>
                                </div>
                                <div class="results__container--auction">
                                    <span class="results__auction_house">auction.auction_house</span>
                                    <span>auction.auction_country</span>
                                    <span class="results__auction_date">auction.auction_date</span>


            /each

【问题讨论】:

if(User.isCharged = true) 没有按照您的预期进行。您应该将其更改为:if(User.isCharged == true) if(User.isCharged) 【参考方案1】:

您可以使用carauctions.results.slice(0,10) 限制结果。这将输出最多 10 个项目,但如果少了也不会造成问题。

【讨论】:

谢谢!它不起作用(500 错误),因为我忘了说我用把手显示在 html 中的每个结果。我不确定这是不是原因,但我编辑了我的问题。 能否提供 HTTP 500 的控制台输出? 好的,你的解决方案对我的主要问题有好处,但你对 isCharge = true 的精确度不是。这是错误。非常感谢! isCharge = true 是一个作业。它将值更改为 true,而不是与 true 进行比较。

以上是关于如何限制显示的对象数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何限制 NSFetchedResultsController 中的对象数量?

ParseObject 数组可以容纳的对象数量是不是有限制?

如何限制 UITableview 显示的单元格数量?

如何限制 Laravel 中的页面链接数量?

分页:如何限制小屏幕设备上的页面数量

如何通过 WooCommerce 中的时间限制限制每个客户的订单数量