Ich habe diese Kollektionen:Knoten und Mongo - Mehrere Sammlung Anrufe in einem Verfahren
sessão:
{
"_id" : ObjectId("5a450a30ca4b001587fcf967"),
"cliente" : ObjectId("5a1407c8099ca208e48170a5"),
"data" : "28/12/2017",
"numero" : "11",
"dadosORS" : ObjectId("5a4507d451c2c614a788c120"),
"dadosSRS" : ObjectId("5a465bcbca4b001587fcf968")
}
registosORS:
{
"_id" : ObjectId("5a450a30ca4b001587fcf966"),
"sessao" : "11",
"outroResponsavel" : "",
"relacao" : "",
"valorIndividualmente" : "1",
"valorInterpessoal" : "1",
"valorSocialmente" : "1",
"valorGlobalmente" : "1",
"email" : "[email protected]",
"data" : "28/12/2017",
"somaValoresOrs" : 4
}
und registosSRS:
{
"_id" : ObjectId("5a465bcbca4b001587fcf968"),
"sessao" : "11",
"valorRelacao" : "7.18",
"valorObjectivo" : "5.06",
"valorAbordagem" : "5.18",
"valorGeral" : "5.37",
"cliente_id" : "5a1407c8099ca208e48170a5",
"email" : "[email protected]",
"somaValoresSrs" : 22.79,
"data" : "29/12/2017"
}
Jetzt muss ich alle Sitzungen für eine bestimmte cliente_id, sowie die ORS- und SRS-Daten auflisten.
Ich mache eine Funktion im Modell, um diese Informationen aufzulisten, aber das funktioniert nicht. Ich dachte, ich könnte nach allen Sessions dieser Clientid suchen und dann mit den IDs dadosORS und dadosSRS ein Array mit diesen Daten erstellen, aber die Arrays sind außerhalb der for nicht definiert.
ClientesDAO.prototype.dadosORSSRSSession = function(clienteid, callback){
var client_id = new ObjectId.ObjectID(clienteid);
this._connection.open(function(err,mongoClient){
mongoClient.collection('sessao', function(err,collection){
collection.find({cliente:client_id}).toArray(function(err,result){
// console.log('result find das sessoes');
// console.log(result);
var ORS_id = [];
var ORS_cliente = [];
var SRS_id = [];
var SRS_cliente = [];
for (var i=0; i<result.length; i++){
ORS_id[i] = new ObjectId.ObjectID(result[i].dadosORS);
mongoClient.collection('registosORS', function(err,collection){
collection.find({_id:ORS_id[i]}).toArray(function(err,result){
ORS_cliente.push(result[0])
})
})
SRS_id[i] = new ObjectId.ObjectID(result[i].dadosSRS);
mongoClient.collection('registosSRS', function(err,collection){
collection.find({_id:SRS_id[i]}).toArray(function(err,result){
SRS_cliente.push(result[0])
})
})
}
console.log('result ORS');
console.log(ORS_cliente);
console.log('result SRS');
console.log(SRS_cliente);
mongoClient.close();
})
})
})
}
Ich lese..aber vorher habe ich die Async und Lodash Module installiert, aber wenn ich Ihren Code ausführen, heißt es: mongoClient ist nicht definiert .. – EFO
Ich nahm 'mongoClient' aus dem veröffentlichten Code-Snippet. – Sridhar
Ich habe die Antwort für jeden möglichen Fehler aktualisiert, bitte überprüfen Sie jetzt – Sridhar