mangusto: encontre dados fazendo um loop em uma variedade de modelos

Estou ficando preso em um algoritmo assíncrono:

Eu tenho uma variedade de modelos de mangusto:

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

Gostaria de pegar todos os itens de cada coleção e colocá-los em uma matriz ou algo parecido. Se eu fizer isso, othis palavra-chave dofind retorno de chamada não se refere ao modelo atual; é impossível saber a quais itens de modelo pertencem

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

  });

}

Eu também tenteiassíncrono biblioteca sem sucesso, porque sempre volto ao mesmo problema: impossível saber qual modelo executa a consulta find dentro do retorno de chamada. Idem em umthen se eu usar promessas.

Por favor me ajude :) Como você faria isso?

EDIT model.find chama query.find, query.find chama mquery.find. No mquery.find, o retorno de chamada é chamado, perdendo a referência a esse momento: this._collection.find (conds, opções, utils.tick (retorno de chamada)); /EDITAR

questionAnswers(1)

yourAnswerToTheQuestion