下面的函数返回一个数组' results'参数:
module.exports.get = function (req, res) {
objModel.find(function (err, results) {
res.json({ record: 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
})
};
}
我的完整代码如下:
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 })
})
};
它返回错误:&#34; objNew&#34;不明。
我在此链接中显示输出记录json列表:Plunker
答案 0 :(得分:1)
我相信您是在聚合框架中的 $lookup
运算符之后,它将为您提供所需的结果。考虑运行以下聚合操作:
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 })
})
};