You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象数组中嵌套的data对象推入新数组?遇undefined问题

问题解决方法

你的问题出在Issues.find({})返回的是Mongoose Document实例数组,而非原生JavaScript对象,直接通过issue['data']访问会因为Mongoose的文档包装机制取不到值。

下面是两种可行的解决方式:

方法一:使用.lean()查询原生对象

在查询时添加.lean(),让Mongoose直接返回原生JS对象,这样就能正常访问data属性:

var issues = await Issues.find({}).lean();
// for循环写法
let issuesData = [];
for (const issue of issues) {
  issuesData.push(issue.data);
}

// 更简洁的map写法
const issuesData = issues.map(issue => issue.data);

方法二:将文档转为普通对象

如果不想修改查询语句,可以用.toObject()把每个Mongoose文档转为原生JS对象后再取值:

var issues = await Issues.find({});
const issuesData = issues.map(issue => issue.toObject().data);

两种方式都能让你得到期望的issuesData数组。

内容的提问来源于stack exchange,提问作者kane ka ne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:25:19