如何在 mongodb 中列出集合

neo*_*ang 1 go mongodb

在 golang 中..我在下面列出了 mongodb 数据库名称..

filter := bson.D{{}}
dbs, _ := client.ListDatabaseNames(context.TODO(), filter)
fmt.Printf("%+v\n", dbs)
Run Code Online (Sandbox Code Playgroud)

但是,我想获取列表集合名称。

Eli*_*sky 5

ListCollectionNames怎么样?

这是文档中的示例。我添加了一些占位符行,您需要将其替换为客户端连接代码并获取数据库:

package main

import (
    "context"
    "fmt"
    "log"

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

func main() {
    // Placeholder:
    //
    // Connect to MongoDB, handle error
    client, err := mongo.connect(....)
    if err != nil {
        log.Fatal(err)
    }
    // Obtain the DB, by name. db will have the type
    // *mongo.Database
    db := client.Database("name-of-your-DB")
    
    // use a filter to only select capped collections
    result, err := db.ListCollectionNames(
        context.TODO(),
        bson.D{{"options.capped", true}})

    if err != nil {
        log.Fatal(err)
    }

    for _, coll := range result {
        fmt.Println(coll)
    }
}
Run Code Online (Sandbox Code Playgroud)