Tengo una colección en la que un artículo puede ser el padre de otro y al mismo tiempo ser el hijo de otro (tiene un código de artículo y un código de padre que es el código de artículo de su padre). Puede tener varios hijos. Quiero encontrar a todos los niños de firstItemCode . Al principio, encuentro todos los elementos con ParentCode iguales al primer ItemCode, luego lo hago de nuevo para cada niño encontrado. Así:
var totals = []; collection.find({'parentCode': firstItemCode.toString()}).then(function(d) { // console.log(d); d.forEach(function(u){ totals.push({'itemCode': u['itemCode'], 'name':u['name'], 'name': u['price']}); collection.find({'parentCode': u['itemCode'].toString()}).then(function(d1){ d1.forEach(function(u1){ totals.push({'itemCode': u1['itemCode'], 'name':u1['name'], 'name': u1['price']}); collection.find({'parentCode': u1['itemCode'].toString()}).then(function(d2){ d2.forEach(function(u2){ totals.push({'itemCode': u2['itemCode'], 'name':u2['name'], 'name': u2['price']}); collection.find({'parentCode': u2['itemCode'].toString()}).then(function(d3){ console.log(totals); }); }); }); }); }); }); });Quiero hacer esto hasta que no haya más elementos en la colección con un código principal igual al código del último elemento.
Intenté este tutorial pero me confundí... No sé cómo encajar forEach en el encadenamiento. ¿Alguien puede ayudarme a hacer esto en un bucle para no tener que copiarlo 100 veces?