I'm trying to learn and use MongoDB, so i had try to connect a app in golang and an other in nodejs, below the two piece of code of both languages...
They are very similar, probably in nodejs is a bit simple, but in both case MongoDB offer a very good documentations.
Golang:
As packages I had used the offical mongodb packages (import "github.com/mongodb/mongo-go-driver/mongo").
go get github.com/mongodb/mongo-go-driver/mongo
in my main.go
package main
import (
"context"
"fmt"
"log"
"github.com/mongodb/mongo-go-driver/bson"
"github.com/mongodb/mongo-go-driver/mongo"
)
type agenda struct {
Nome string
Cognome string
Nazione string
}
func main() {
client, err := mongo.NewClient("mongodb://127.0.0.1:27017")
if err != nil {
log.Fatal(err)
}
err = client.Connect(context.TODO())
if err != nil {
log.Fatal(err)
}
collection := client.Database("demo").Collection("agenda")
fmt.Println(collection)
cur, err := collection.Find(context.Background(), nil)
if err != nil {
log.Fatalln(err)
}
defer cur.Close(context.Background())
fmt.Println("test", cur)
for cur.Next(context.Background()) {
elem := bson.NewDocument()
if err = cur.Decode(elem); err != nil {
fmt.Errorf("readTasks: couldn't make to-do item ready for display: %v", err)
}
fmt.Println(elem.Lookup("nome").StringValue())
}
}
Run application:
go run main.go
NodeJS
Also in nodejs I had used official mongodb library:
https://mongodb.github.io/node-mongodb-native/
In your app folder:
npm install mongodb --save
my package.json file
{
"name": "nodejs-mongodb",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"mongodb": "^3.1.8"
}
}
my app.js file:
// mongodb
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// connection to mongodb url
const mongohost = 'mongodb://127.0.0.1:27017';
// create a new MongoClient
const client = new MongoClient(mongohost);
// database name
const dbName = 'demo';
// connect to the server
client.connect(function(err) {
assert.equal(null, err);
console.log("Connected succesfully to server db");
// passo db
const db = client.db(dbName);
const collection = db.collection('agenda');
collection.find({}).toArray(function(err, docs){
assert.equal(err, null);
console.log("trovati i seguenti record");
console.log(docs);
for (i = 0; i < docs.length; i++) {
console.log(docs[i].nome + " " + docs[i].cognome + " " + docs[i].nazione);
}
});
});
Launch app:
node app.js
Have a nice day!
Repository:
Golang: https://github.com/pierangelo1982/go-experiment/tree/master/mongodb-golang/01
NodeJS: https://github.com/pierangelo1982/nodejs-experiment/tree/master/02%20-%20nodejs-mongodb
Top comments (3)
Great post man <3 !
I just have a question, how would you go about deploying a golang server?
Something like pm2? or how do you do it?
I recommended take your golang app to execute with k8s and ingress
i think that this is a good solutions:
hackersandslackers.com/deploy-gola...