'Print collection in a list of a collection in mongodb in golang
To print a collection from mongodb the following is my code in python:
print(list(MongoClient(***).get_database("ChatDB").get_collection("room_members".find({'_id.username': username})))
I am learning Go and I am trying to translate the aforementioned code into golang.
My code is as follows:
client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("*****"))
if err != nil {
panic(err)
}
likes_collection := client.Database("ChatDB").Collection("likes")
cur, err := likes_collection.Find(context.Background(), bson.D{{}})
if err != nil {
panic(err)
}
defer cur.Close(context.Background())
fmt.Println(cur)
However, I get some hex value
Solution 1:[1]
Mongo in go lang different api than mongo.
Find returns cursor not collection.
You should changed your code to :
var items []Items
cur, err := likes_collection.Find(context.Background(), bson.D{{}})
if err != nil {
panic(err)
}
cur.All(context.Background(),&items)
Solution 2:[2]
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
client, err := mongo.Connect(ctx, options.Client().ApplyURI("***"))
if err != nil {
panic(err)
}
var likes []bson.M
likes_collection := client.Database("ChatDB").Collection("likes")
defer client.Disconnect(ctx)
cursor, err := likes_collection.Find(context.Background(), bson.D{{}})
if err != nil {
panic(err)
}
if err = cursor.All(ctx, &likes); err != nil {
panic(err)
}
fmt.Println(likes)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Osman Corluk |
| Solution 2 | Echchama Nayak |
