mongo.Connect () не работает должным образом в Go с использованием mongo-go-driver - PullRequest
0 голосов
/ 21 февраля 2019

Я использую пакет: "github.com/mongodb/mongo-go-driver/mongo"

Я пытаюсь использовать следующее, как указано в документации :

mongoContext, _ := context.WithTimeout(context.Background(), 10*time.Second)
mongoClient, _ := mongo.Connect(mongoContext, "mongodb://localhost:27017")

Однако на второмСтрока Я получаю сообщение об ошибке:

cannot use "mongodb://localhost:27017" (type string) as type *options.ClientOptions in argument to mongo.Connect

Кажется, документация не соответствует реализации.Кто-нибудь был успешным?

В документации говорится:

//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")

1 Ответ

0 голосов
/ 21 февраля 2019

В документации говорится, что метод Connect должен использовать объект контекста.Здесь также приведен пример использования:

Сначала необходимо указать строку подключения для функции NewClient.


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

Чтобы использовать еекак один шаг, как вы пытаетесь сделать, вы должны быть в состоянии сделать:

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
}

(Строка подключения должна быть помещена внутри объекта options.ClientOptions, и метод options.Client().ApplyURI() позаботитсяоб этом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...