【问题标题】:How to properly search data from a big database using angularjs如何使用 angularjs 从大型数据库中正确搜索数据
【发布时间】:2015-06-24 15:29:18
【问题描述】:

我正在尝试找到一种在大型数据库中搜索数据的好方法。 我有一个 API 可以从 MongoDB 获取整个数据列表

.get(function(req, res) {
        drinks.find({ }, function(err, drinksOrders) {
            if (err) {
                res.send(err);
                return;
            }
            res.json(drinksOrders);
        });
    });

我有 ng-repeat 用一些过滤器显示这些数据。

**问题 1 - **如果我的数据库文件是 1gb,在页面加载之前,页面会等到 res.json(drinksOrders) 完全下载吗?

**问题 2 - ** 如果页面动态加载而无需等待大型 json 文件加载,我的搜索过滤器将如何表现?因此,如果在我的搜索字段“可乐”中,此查询将成立并且 Angular 将不断下载 json 并过滤掉并仅显示“可乐”?

**问题 3 - ** 使用 angular limitTo,这会不会只下载部分 json 文件到一定的限制。

谢谢

【问题讨论】:

    标签: javascript json angularjs mongodb


    【解决方案1】:

    好吧,我会说这种方法是错误的。如果您将那么多数据加载到浏览器,您可能会杀死它。 RAM 和 CPU 消耗可能会非常高,您的应用将变得无响应。

    恕我直言,更好的方法是使用分页并始终加载 50 个项目。

    您真的需要一次加载所有数据吗?

    广告 1) 这取决于您如何实施。如果您需要在用户开始与您的页面交互之前加载所有数据,那么可以。否则,只需在显示饮料的部分添加一些加载指示器。

    广告 2) 我不确定,抱歉 :)

    广告 3) limitTo 是一个过滤器。它在渲染已经加载的数据时使用。它的作用是只从可用数据中获取前 N 个项目。所以在应用limitTo之前需要加载所有数据

    【讨论】:

    • 是的,我不想将 1GB 加载到浏览器中……那太疯狂了。无论如何感谢您的回复。什么是恕我直言?
    • 恕我直言的意思是“以我的拙见”:)
    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 2012-09-19
    • 2016-12-06
    • 2016-03-22
    • 2017-06-14
    相关资源
    最近更新 更多