skip to Main Content

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

2

Answers


  1. Chosen as BEST ANSWER
    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)
    

  2. 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)
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search