DEV Community

Anurag Affection
Anurag Affection

Posted on

Storing Data in MongoDB with Go - 04

  • First check the Go version by running the command
go version
Enter fullscreen mode Exit fullscreen mode
  • Create a folder
mkdir <folder_name>
Enter fullscreen mode Exit fullscreen mode
  • Switch to created folder
cd <folder_name>
Enter fullscreen mode Exit fullscreen mode
  • Initialize the go project by running the given command. You will get go.mod file.
go mod init <folder_name>
Enter fullscreen mode Exit fullscreen mode
  • Create a main.go file, use terminal or bash
notepad main.go 
touch main.go
Enter fullscreen mode Exit fullscreen mode
  • Let's write some basic code in main.go file.
package main 

import (
    "fmt"
)


func main () {
    fmt.Println("Hello From Go")
}

Enter fullscreen mode Exit fullscreen mode
  • Run the code by following command
go run main.go 
Enter fullscreen mode Exit fullscreen mode
  • You will see this output in console
Hello From Go
Enter fullscreen mode Exit fullscreen mode
  • Install some packages to connect MongoDB. Here are commands
go get go.mongodb.org/mongo-driver
go get go.mongodb.org/mongo-driver/mongo
Enter fullscreen mode Exit fullscreen mode
  • Revisit the main.go file to connect MongoDB. Add some code to connect MongoDB. This is how it will look after adding.
package main 

// package importing
import (
    "fmt"

    "log"
    "context"

    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)


// mongodb connections
var collection *mongo.Collection
var ctx = context.TODO()

func init() {
    clientOptions := options.Client().ApplyURI("mongodb://localhost:27017/")
    client, err := mongo.Connect(ctx, clientOptions)
    if err != nil {
        log.Fatal(err)
    }

    // check connection
    err = client.Ping(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Connected to MongoDB!")

    collection = client.Database("testingWithGo").Collection("movies")
}



// entry point 
func main () {
    fmt.Println("Hello From Go")
}
Enter fullscreen mode Exit fullscreen mode
  • Run the code by following command
go run main.go 
Enter fullscreen mode Exit fullscreen mode
  • You will see this output in console
Connected to MongoDB!
Hello From Go
Enter fullscreen mode Exit fullscreen mode
  • Till, Our MongoDB is connected. Now let's add some data. We are going to add movie data. So, let's make a movie structure.
// movie model or structure 
type Movie struct {
    ID    string `json:"id"`
    Title string `json:"title"`
}
Enter fullscreen mode Exit fullscreen mode
  • Now write a function to add movie to database.
// to add movie to db
func addMovie(id, title string) {

    movie := Movie{
        ID:    id,
        Title: title,
    }

    _, err := collection.InsertOne(ctx, movie)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Movie added successfully!")
}
Enter fullscreen mode Exit fullscreen mode
  • Call the addMovie function to main function.
addMovie("1", "Captain America")
Enter fullscreen mode Exit fullscreen mode
  • This is how our code will look like after completing above steps
package main 

// package importing
import (
    "fmt"

    "log"
    "context"

    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)




// mongodb connections
var collection *mongo.Collection
var ctx = context.TODO()

func init() {
    clientOptions := options.Client().ApplyURI("mongodb://localhost:27017/")
    client, err := mongo.Connect(ctx, clientOptions)
    if err != nil {
        log.Fatal(err)
    }

    // check connection
    err = client.Ping(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Connected to MongoDB!")

    collection = client.Database("testingWithGo").Collection("movies")
}



// movie model or structure 
type Movie struct {
    ID    string `json:"id"`
    Title string `json:"title"`
}


// to add movie to db
func addMovie(id, title string) {

    movie := Movie{
        ID:    id,
        Title: title,
    }

    _, err := collection.InsertOne(ctx, movie)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Movie added successfully!")
}




// entry point 
func main () {
    fmt.Println("Hello From Go")

    // callig addMovie 
    addMovie("1", "Captain America")
}
Enter fullscreen mode Exit fullscreen mode
  • Run the code by following command
go run main.go 
Enter fullscreen mode Exit fullscreen mode
  • You will see this output in console
Connected to MongoDB!
Hello From Go
Movie added successfully!
Enter fullscreen mode Exit fullscreen mode
  • We have successfully added some data to MongoDB, you can verify in your database, which is your localhost.
mongodb://localhost:27017/
Enter fullscreen mode Exit fullscreen mode

That's for this article. Thank You.

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more