Печать данных коллекции MongoDB - GoLang, результаты не такие, как ожидалось - PullRequest
0 голосов
/ 03 января 2019

У меня есть mongoDB в контейнере Docker, я могу подключиться и обновить БД просто отлично, я вижу результаты в Compass.Однако, когда дело доходит до захвата коллекции и печати результатов, они не печатаются, как я ожидаю.

Это фрагмент моего кода:

db := client.Database("maccaption")
collection := client.Database("maccaption").Collection("JobBacklog")
res, err := collection.InsertOne(context.Background(), bson.M{"hello": "world"})
if err != nil {
    log.Fatal(err)
}
result := struct {
    Foo string
    Bar string
}{}
filter := bson.D{{"hello", "world"}}
err = collection.FindOne(context.Background(), filter).Decode(&result)
if err != nil {
    log.Fatal(err)
}
fmt.Println("Results", result)

Я использую официальный драйвер mongo-go.и следуя приведенным здесь примерам https://godoc.org/github.com/mongodb/mongo-go-driver/mongo

Я знаю, что БД подключена, я вижу обновление, когда добавляю в БД, а затем оно появляется в Compass, когда я запускаю код, но collection.FindOneвозвращает Results {0}, когда я ожидаю, что он вернет hello: world.

Может кто-нибудь помочь мне с этим?Спасибо!

1 Ответ

0 голосов
/ 03 января 2019

Вы вставили документ с полем привет со значением "мир".Затем вы пытаетесь распаковать этот документ в структуру с полями Foo и Bar.Ни один из них не называется Hello, и ни один из них не имеет тега bson, поэтому нигде не следует разархивировать ваше поле hello в.Если вы вместо этого определите:

result := struct{
    Hello string
}

Он должен быть разархивирован по желанию.

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