Angeben von Mongo-Abfrageparametern über den Client-Controller (MEAN.JS)

Ich erstelle eine Anwendung mit MongoDB, Angular, Express und Node (MEAN-Stack).

Ich habe den MEAN.JS-Generator verwendet, um meine Anwendung zu strukturieren.

Ich werde das Artikel-Modul als Referenz verwenden.

Angenommen, meine Artikelsammlung enthält 7000 Datensätze, mit denen jeweils ein Datum verknüpft ist. Es ist ineffizient, jedes Mal, wenn ich die Seite lade, um die Datensätze in einer Tabelle anzuzeigen, alle 7000 Datensätze in den Speicher zu laden. Aus diesem Grund möchte ich nur Datensätze mit einem Datum im Bereich von (vor 1 Monat) bis (vor 1 Jahr) laden und in der Tabelle anzeigen. Ich kann dies derzeit mit den folgenden tun:

In meinen articles.client.controller.js:

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

... und in meinem 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);
        }
    });
};

Das Problem ist, dass dies keine dynamische Vorgehensweise ist. Mit anderen Worten, ich möchte, dass der Benutzer angeben kann, wie weit hinten und wie weit vorne er sehen möchte.

Wie kann ich in meiner Client-Ansicht eine Bindung an Variablen (z. B. 'aYearFromNow' und 'aMonthAgo') herstellen, die die Abfrageparameter in meinem Server-Controller ändern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage