während es kann ein Weg sein, dies zu tun, ist es ist generell eine schlechte Idee zu immer verstecke diese Information.
Wenn Sie aus Erfahrung damit versuchen, dies mit anderen Sprachen und Datenbanksystemen zu tun, werden/wollen Sie irgendwann Elemente laden, die nicht aktiv sind. Aber wenn Sie immer und nur aktivierte Elemente zurückgeben, werden Sie nie in der Lage sein, die Liste zu bekommen, die Sie brauchen.
für Ihre Zwecke, würde ich empfehlen, ein findActive
Methode auf Ihrem Schema zu erstellen:
someSchema.static("findActive", function(query, cb){
// check if there is a query and callback
if (!cb){
cb = query;
query = {};
}
// set up an empty query, if there isn't one provided
if (!query) { query = {}; }
// make sure you only load activated items
query.activated = true;
// run the query
this.find(query, cb);
});
mit dieser Methode haben Sie eine findActive
Verfahren das gleiche wie findOne
, aber es wird immer für aktivierte Elemente filtern.
MyModel.findActive(function(err, modelList){ ... });
und unterstützt optional zusätzliche Abfragefilter
MyModel.findActive({some: "stuff"}, function(err, modelList){ ... });
die trockene Art und Weise scheint der beste Weg zu sein. – AJS