Mungo: Finden Sie Daten, indem Sie eine Reihe von Modellen durchlaufen

Ich bleibe bei einem asynchronen Algorithmus:

Ich habe eine Reihe von Mungomodellen:

var allRefDatasSchemas = {
  RefAllotement: mongoose.model('RefAllotement', RefDataSchema),
  RefModeleConstructeur: mongoose.model('RefModeleConstructeur', RefDataSchema),
  RefTypeKit: mongoose.model('RefTypeKit', RefDataSchema),
  RefTypeUtilisation: mongoose.model('RefTypeUtilisation', RefDataSchema),
};

Ich würde gerne alle Gegenstände aus jeder Sammlung nehmen und sie in ein Array oder ähnliches legen. Wenn ich das tue, diethis Stichwort derfind Rückruf bezieht sich nicht auf das aktuelle Modell, daher ist es mir unmöglich zu wissen, zu welchem Modell Artikel gehören

var results = {};

for (var model in allRefDatasSchemas) {

  allRefDatasSchemas[model].find(function(err, data) {

    // I'd like to do something like that :
    // but this.modelName is null, because it isn't the model
    // on which the find is done.
    results[this.modelName] = data;

    // if I use "model" variable, it doesn't work, because asynchronous callback

  });

}

Ich habe es auch versuchtasynchron Bibliothek ohne Erfolg, weil ich immer zum selben Thema zurückkehre: Unmöglich zu wissen, welches Modell die Suchabfrage innerhalb des Rückrufs ausführt. Idem in athen wenn ich versprechungen verwende.

Bitte hilf mir :) Wie würdest du das machen?

EDIT model.find ruft query.find auf, query.find ruft mquery.find auf. In mquery.find wird callback aufgerufen, indem der this-Verweis zu dieser Zeit verloren geht: this._collection.find (conds, options, utils.tick (callback)); /BEARBEITEN

Antworten auf die Frage(1)

Ihre Antwort auf die Frage