Especificando parâmetros de consulta do Mongo no Client Controller (MEAN.JS)

Estou criando um aplicativo usando MongoDB, Angular, Express e Node (pilha MEAN).

Eu usei o gerador MEAN.JS para montar meu aplicativo.

Vou usar o módulo de artigos como referência.

Suponha que eu tenha 7000 registros em minha coleção de artigos e que cada registro tenha uma data associada a ele. É ineficiente carregar todos os 7000 registros na memória toda vez que eu carrego a página para exibir os registros em uma tabela e vejo perdas terríveis de desempenho por causa disso. Por esse motivo, eu gostaria apenas de carregar registros com uma data no intervalo de (1 mês atrás) a (1 ano a partir de agora) e exibi-los na tabela. Atualmente, posso fazer isso com o seguinte:

Nos meus articles.client.controller.js:

$scope.find = function() {
        $articles = Articles.query();
};

... e nos meus 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);
        }
    });
};

O problema é que essa não é uma maneira dinâmica de fazer as coisas. Em outras palavras, quero que o usuário possa especificar a que distância e quanto tempo deseja ver.

Como vincular a variáveis (por exemplo, 'aYearFromNow' e 'aMonthAgo') na visão do meu cliente que alteram os parâmetros de consulta no controlador do servidor?

questionAnswers(2)

yourAnswerToTheQuestion