我试图根据之前的查询搜索查找但没有运气。
我得到了我应该得到的所有结果,但办公室总是返回一个空数组 我在这里失踪了什么?
findDetails().then(details =>
console.log("----------First Promise------------");
return Promise.all(details.map(item => {
// ^^^^^^
return findChart(item.gid).then(detail =>
// ^^^^^^
console.log("Detail is ------> " + detail.DISPLAY_NAME)
const renderData = {
gid: detail.DISPLAY_NAME,
pageouttime: item.pageouttime,
createdAt: item.createdAt,
oncall: item.oncall,
comments: item.comments,
actionLink: item._id.toString(),
};
console.log(renderData);
return renderData;
// ^^^^^^
});
}));
}).then(dataArr => {
console.log("Final Result is ----> " + dataArr);
response.data = dataArr;
res.json(response);
}, err => {
res.send(err);
});

答案 0 :(得分:1)
使用$arrayElemAt
访问先前查找数组中的元素。
尝试
let: {elem: {$arrayElemAt:["$sales_agent", 0]}}
&安培;
{$match: {$expr: {$eq: ['$_id', '$$elem.office']}}}
或在一次修改中
let: {office: {$let:{vars:{elem:{$arrayElemAt:["$sales_agent", 0]}}, in:"$$elem.office"}}}