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

Golang操作MongoDB时如何列出指定数据库下的集合名称

Go操作MongoDB获取指定数据库下集合名称的实现方法

你可以直接调用目标数据库实例的ListCollectionNames方法实现,具体逻辑如下:

  • 复用你已经初始化完成的MongoDB客户端实例,调用client.Database("目标数据库名称")拿到指定数据库的操作对象
  • 调用该数据库对象的ListCollectionNames方法,传入上下文和过滤参数即可,空过滤参数会返回该库下所有集合名称

完整可运行示例代码:

package main

import (
	"context"
	"fmt"
	"log"

	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
)

func main() {
	// 初始化MongoDB客户端,你已有对应逻辑可直接复用
	client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("mongodb://localhost:27017"))
	if err != nil {
		log.Fatalf("客户端初始化失败: %v", err)
	}
	defer client.Disconnect(context.TODO())

	// 替换为你要查询的实际数据库名称
	targetDB := client.Database("your_db_name")

	// 空过滤器代表查询所有集合,也可以自定义过滤条件筛选特定集合
	filter := bson.D{{}}
	collNames, err := targetDB.ListCollectionNames(context.TODO(), filter)
	if err != nil {
		log.Fatalf("获取集合列表失败: %v", err)
	}

	fmt.Printf("该数据库下的集合列表:%+v\n", collNames)
}

补充说明:

  • 若需要筛选特定集合,可自定义filter参数。比如要筛选名称前缀为test_的集合,可将filter改为:
    filter := bson.D{{"name", bson.M{"$regex": "^test_"}}}
    
  • 生产环境请不要忽略错误处理,避免权限不足、数据库连接异常等问题导致程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 10:27:00