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

Mongoose执行find查询如何将返回的对象数组转为嵌套数组结构

实现方案

你可以通过两种常见方式实现结构转换:

方案1:查询后手动映射(最简便,适合小数据量场景)

拿到Mongoose返回的对象数组后,直接用map遍历转换即可。如果你不需要严格指定字段顺序,直接提取对象所有值即可:

const queryResult = await this.model.find({ lastname: req.lastname})
// 转换为嵌套数组结构
return queryResult.map(item => Object.values(item))

如果需要严格控制字段顺序、或者只需要返回指定字段,可以手动指定取值逻辑:

return queryResult.map(item => [
  item.firstname,
  item.lastname,
  item.age,
  // 按你需要的字段和顺序补充即可
])

方案2:聚合查询直接返回(适合大数据量场景,无需后端二次处理)

直接用Mongoose聚合管道在数据库层面完成格式转换:

return await this.model.aggregate([
  // 匹配查询条件
  { $match: { lastname: req.lastname } },
  // 按你需要的顺序把字段拼装为数组,不需要的字段不用写
  { $project: { 
    _id: 0, // 不需要_id的话可以在此处排除
    resArray: ["$firstname", "$lastname", "$age"] 
  }},
  // 直接把拼装好的数组作为根元素返回
  { $replaceRoot: { newRoot: "$resArray" } }
])

内容的提问来源于stack exchange,提问作者Alice

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:27:02