Node.js - Mongoose - Busquedas anidadas

 
Vista:
Imágen de perfil de David

Mongoose - Busquedas anidadas

Publicado por David (1 intervención) el 10/04/2017 15:40:57
Buenos días.
Dada las características asíncronas de NodeJs, estoy en un problema que no sé como resolver. Paso a explicar.
Tengo dos colecciones en una BD Mongo. Uso mongoose desde NodeJs.

1
2
3
4
5
6
7
Colección UserGroup, con campos:
    name(String)
    group_id (Number)
 
Colección User, con campos:
	user_name(String)
	group_id(Number)

Casa User tiene un número de grupo de usuarios asignado en el campo group_id.


Quiero obtener un listado como sigue:

ADMINISTRATORS
--------------------------
jlopez
rdiaz

OPERATORS
--------------------------
amiralles
dcamponits


Para obtener el listado hago lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
UserGroup.find({}, (err, groups) => {
 
	for(var i in groups){
 
		console.log(groups[i].name)
		console.log("--------------------")
		User.find( {group_id : groups[i].group_id}, (err, users) =>{
			for(var j in users){
				console.log(users[j].user_name)
			}
		})
	}
})

El PROBLEMA es que obtengo lo siguiente:

ADMINISTRATORS
--------------------------
OPERATORS
--------------------------
jlopez
rdiaz
amiralles
dcamponits


¿Qué puedo hacer para lograr mi cometido? ¿cómo hago para que el primero ciclo For no continue hasta que termine el ciclo For interno?

Gracias de antemano (los datos en la BD están bien.)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder