小编cas*_*ley的帖子

从客户端控制器(MEAN.JS)指定Mongo查询参数

我正在使用MongoDB,Angular,Express和Node(MEAN堆栈)构建应用程序.

我使用MEAN.JS生成器来构建我的应用程序.

我将使用文章模块作为参考.

假设我的文章集合中有7000条记录,并且每条记录都有一个与之关联的日期.每次加载页面以查看表中的记录时,将所有7000条记录加载到内存中是低效的,因此我看到了可怕的性能损失.出于这个原因,我只想加载日期范围为(1个月前)到(从现在起1年)的记录,并将其显示在表格中.我目前可以通过以下方式执行此操作:

在我的articles.client.controller.js中:

$scope.find = function() {
        $articles = Articles.query();
};
Run Code Online (Sandbox Code Playgroud)

...在我的articles.server.controller.js中:

var now = new Date();
var aYearFromNow = new Date(now.getTime() + 86400000*365); //add a year
var aMonthAgo = new Date(now.getTime() - 86400000*30); //subtract roughly a month

exports.list = function(req, res) { Article.find().where('date').lt(aYearFromNow).gt(aMonthAgo).sort('-created').populate('user', 'displayName').exec(function(err, articles) {
        if (err) {
            return res.send(400, {
                message: getErrorMessage(err)
            });
        } else {
            res.jsonp(articles);
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

问题是,这不是一种动态的做事方式.换句话说,我希望用户能够指定他们想要看到多远和多远.

如何在我的客户端视图中绑定变量(例如'aYearFromNow'和'aMonthAgo'),这将改变我的服务器控制器中的查询参数?

javascript mongodb express angularjs meanjs

7
推荐指数
2
解决办法
3874
查看次数

标签 统计

angularjs ×1

express ×1

javascript ×1

meanjs ×1

mongodb ×1