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

MongoDB如何直接返回字符串或数字数组,无需遍历提取对象字段值

MongoDB直接返回单字段值数组的查询方法

你可以通过以下两种方式实现需求,无需手动遍历结果提取字段:

方法1:distinct方法(无复杂查询时优先使用)

针对单字段提取的场景,distinct是最简便的方案,会直接返回目标字段值组成的一维数组:

// 语法:db.集合名.distinct(提取字段名, 查询筛选条件)
// 示例:提取所有文档的name字段值
db.yourCollection.distinct('name', {})

执行后直接得到结果:['A', 'B']

方法2:聚合管道(适用于带复杂查询、分组逻辑的场景)

如果你的查询包含多阶段聚合逻辑,可以搭配$group和$push实现:

db.yourCollection.aggregate([
  // 此处可添加$match、$sort等其他聚合阶段
  {
    $group: {
      _id: null,
      result: { $push: '$name' }
    }
  },
  {
    $project: {
      _id: 0,
      result: 1
    }
  }
])

返回结果结构为:{ "result" : ["A", "B"] },直接取result字段即可使用。

Mongoose适配说明:
上述两种方法在Mongoose中均可直接使用,distinct调用示例如下:

YourModel.distinct('name', {}).exec()

返回的Promise resolve后就是目标数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 09:27:01