【发布时间】:2021-12-03 08:43:15
【问题描述】:
我的设置是带有 typescript + mongoose + express 的 nodejs。我运行我的 mongoose 查询,我得到了一个 2 层深的 league 文档。我需要根据某些标准重新排序位于我的第一级的填充数组ties,然后执行以下代码
const completed = [];
const upcoming = [];
league.ties.forEach((tie, index) => {
if (tie) {
tie?.matchStatus === "COMPLETED"
? completed.push(tie)
: upcoming.push(tie);
}
});
upcoming.sort((a, b) => (a.startDate > b.startDate) ? 1 : ((b.startDate > a.startDate) ? -1 : 0));
completed.sort((a, b) => (b.startDate > a.startDate) ? 1 : ((a.startDate > b.startDate) ? -1 : 0));
const ties = [...upcoming, ...completed];
console.log(ties);
league.ties = ties;
console.log(league.ties);
第一个 console.log ties 是对象数组,但第二个 console.log league.ties 是 _ids 数组(字符串)。
有人知道这里为什么会发生这种情况以及为什么没有推送对象吗?
我尝试了循环、地图、lodash...我暂时将此代码移至客户端 Angular 应用程序,它运行良好。
谢谢
【问题讨论】:
标签: node.js typescript mongoose