如何从 golang(go 语言)程序中 create/drop mongoDB 数据库和集合。?

How to create/drop mongoDB database and collections from a golang (go language) program.?

func DatabaseConnect() (db *mongo.Database, err error) {
    ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
    defer cancel()
    client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017"))
    if err != nil {
        return
    }
    db = client.Database("students")
    return
}

上述函数连接到 mongoDB 服务器上已经存在的数据库。但是我们能不能为这个写一个类似的函数,它将 create/drop 一个数据库和一些集合。

func HandleDatabases(){
// for deleting / creating / managing mongoDB databases and collections ?
}

使用 MongoDB,数据库和集合在使用前不需要存在。

您可以 运行 查询 non-existing 数据库和集合,这不会导致错误,但显然不会 return 任何文档。将文档插入 non-existing 数据库 and/or 集合时,将自动创建数据库 and/or 集合。

要删除数据库,只需使用 Database.Drop() method. To drop a collection, simply use the Collection.Drop() 方法。

如果您希望创建具有 non-default 特殊属性的集合,则只需在使用前创建一个集合。为此,您可以使用 Database.CreateCollection().

要找出服务器上已经存在哪些数据库,您可以使用 Client.ListDatabases() or Client.ListDatabaseNames() 方法。

要找出数据库中已经存在哪些集合,您可以使用 Database.ListCollections() or Database.ListCollectionNames() 方法。