La siguiente función devuelve una matriz en el argumento 'resultados':
module.exports.get = function (req, res) { objModel.find(function (err, results) { res.json({ record: results }) }) };Quiero agregar su lista de registros de colección de referencia en un nuevo objeto para cada elemento. Al igual que lo siguiente:
for (var i = 0; i < results.length; i++) { module.exports.get = function (req, res) { objModel.find({ _id: results[i]._id }, function (err, record) { results[i]["objNew"] = record }) }; }Mi código completo se parece a:
module.exports.get = function (req, res) { objModel.find(function (err, results) { for (var i = 0; i < results.length; i++) { module.exports.get = function (req, res) { objModel.find({ _id: results[i]._id }, function (err, record) { results[i]["objNew"] = record }) }; } res.json({ recordList: results }) }) };Devuelve el error: "objNew" es desconocido.
Muestro la lista json del registro de salida en este enlace: Plunker
Creo que está buscando el operador de $lookup en el marco de agregación que le dará el resultado deseado. Considere ejecutar la siguiente operación agregada:
module.exports.get = function (req, res) { objModel.aggregate([ { "$lookup": { "from": "objModelcollectionName", /* "self-join" with collection */ "localField": "_id", "foreignField": "_id", "as": "objNew" } } ]).exec(function (err, results) { if (err) throw err; res.json({ recordList: results }) }) };