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
相关产品推荐
相关产品推荐

