英文:
how i get a session in mongodb with golang
问题
我需要使用方法**CollectionNames()**来列出数据库中的所有集合。
我将需要在mongoDB中创建一个session:
sess := ... // 获取session
db := sess.DB("") // 获取db,如果连接URL中没有给出db名称,则使用db名称
names, err := db.CollectionNames()
我在哪里可以找到一个获取MongoDB session的示例?
我一直以以下方式连接到数据库:
cliente_local, err := mongo.NewClient(options.Client().ApplyURI(cadena_conexion))
if err != nil {
log.Fatal(err)
}
ctx, cancelar = context.WithTimeout(context.Background(), 10*time.Second)
err = cliente_local.Connect(ctx)
if err != nil {
log.Fatal(err)
}
defer cancelar()
mongo_cliente = cliente_local.Database(DATABASE)
如何创建一个session?
提前感谢!
英文:
I need to use the method CollectionNames() in order to list all the collections of a database.
I will have to create a session in mongoDB:
sess := ... // obtain session
db := sess.DB("") // Get db, use db name if not given in connection url
names, err := db.CollectionNames()
Where could I find a example to get a session in MongoDB?
I have always connected with the DB of the next way:
cliente_local, err := mongo.NewClient(options.Client().ApplyURI(cadena_conexion))
if err != nil {
log.Fatal(err)
}
ctx, cancelar = context.WithTimeout(context.Background(), 10*time.Second)
err = cliente_local.Connect(ctx)
if err != nil {
log.Fatal(err)
}
defer cancelar()
mongo_cliente = cliente_local.Database(DATABASE)
How could I create a session?
Thanks in advance!!
答案1
得分: 2
你似乎混淆了不同的MongoDB驱动程序。DB.CollectionNames()
存在于旧且未维护的mgo
驱动程序中。
你使用的是官方的mongo-go
驱动程序,它有一种不同的方法来获取现有集合的列表。
mongo-go
驱动程序有Database.ListCollectionNames()
方法,你可以像这样使用它:
names, err := mongo_cliente.ListCollectionNames(ctx, bson.D{})
// names是一个包含所有现有集合名称的[]string
英文:
You seem to be confusing / mixing different MongoDB drivers. The DB.CollectionNames()
exists in the mgo
driver which is old and unmaintained.
The driver you use is the official mongo-go
driver, which has a different method for obtaining the list of existing collections.
The mongo-go
driver has the Database.ListCollectionNames()
method, you may use it like this:
names, err := mongo_cliente.ListCollectionNames(ctx, bson.D{})
// names is a []string holding all the existing collection names
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论