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