Reputation: 315
I am using the package: "github.com/mongodb/mongo-go-driver/mongo"
I am trying to use the following as specified in the documentation:
mongoContext, _ := context.WithTimeout(context.Background(), 10*time.Second)
mongoClient, _ := mongo.Connect(mongoContext, "mongodb://localhost:27017")
However on the second line I get the error:
cannot use "mongodb://localhost:27017" (type string) as type *options.ClientOptions in argument to mongo.Connect
It seems the documentation doesn't match the implementation. Has anyone been successful?
The documentation states:
//To do this in a single step, you can use the Connect function:
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
client, err := mongo.Connect(ctx, "mongodb://localhost:27017")
Upvotes: 2
Views: 2051
Reputation: 7516
The documentation states that the Connect
method have to use a context object.
It also provides an example of usage:
You connection string have to be provided to the NewClient
function first.
client, err := mongo.NewClient(mongo.options.Client().ApplyURI("mongodb://localhost:27017"))
if err != nil {
// error
}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
err = client.Connect(ctx)
if err != nil {
// error
}
// here you can use the client object
https://godoc.org/github.com/mongodb/mongo-go-driver/mongo#Client.Connect
To use it as a single step as you try to do, you should be able to do:
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
mongoClient, err := mongo.Connect(ctx, mongo.options.Client().ApplyURI("mongodb://localhost:27017"))
if err != nil {
// error
}
(The connection string has to be put inside an options.ClientOptions object, and the options.Client().ApplyURI()
method will take care of it)
Upvotes: 4