mgo

package
v1.0.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Open

func Open(host string,
	port int,
	username, password, name string,
	maxPoolSize uint64,
	connectTimeout, socketTimeout, queryTimeout time.Duration) error

Open initializes a MongoDB database.

Example
// Database connection
// -------------------
err := Open("host", 10, "username", "password", "name", uint64(50), 10*time.Second, 10*time.Second, 10*time.Second)
if err != nil {
	log.Fatalf("Database connection failed: %v\n", err)
}
defer func() {
	if err = DBInstance.Client.Disconnect(DBInstance.Context); err != nil {
		log.Fatalf("Database disconnection failed: %v\n", err)
	}
}()

// Usage
// -----
type User struct {
	ID        primitive.ObjectID `json:"id" bson:"_id,omitempty"`
	Lastname  string             `json:"lastname"`
	Firstname string             `json:"firstname"`
	Email     string             `json:"email"`
	Password  string             `json:"password,omitempty"`
	CreatedAt time.Time          `json:"createdAt" bson:"created_at"`
}

users := make([]User, 0)
col := DBInstance.Database.Collection("users")
ctx, cancel := context.WithTimeout(context.Background(), DBInstance.QueryTimeout)
options := options.Find().SetSort(bson.D{primitive.E{Key: "created_at", Value: -1}})
filter := bson.D{}
cur, err := col.Find(ctx, filter, options)
if err != nil {
	cancel()
}
defer cur.Close(context.Background())

for cur.Next(context.Background()) {
	var user User

	err := cur.Decode(&user)
	if err != nil {
		continue
	}

	user.Password = ""

	users = append(users, user)
}

cancel()
fmt.Printf("Users: %v\n", users)
Output:

Types

type DB

type DB struct {
	Name         string
	Database     *mongo.Database
	Client       *mongo.Client
	Context      context.Context
	QueryTimeout time.Duration
}

DB structure

var DBInstance *DB

DBInstance is an *DB instance creates by Open().

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL