یہ ٹیوٹوریل گولینگ زبان کی نقطہ نظر سے MongoDB کی بنیادی عملیات کو متعارف کراتا ہے۔

نوٹ: یہ ٹیوٹوریل مانگو ڈی بی کی طرف سے فراہم کردہ آفیشل گو لینگویج ڈرائیور پیکیج کا استعمال کرتا ہے۔

پہلے ضروری ٹیوٹوریلز

MongoDB ٹیوٹوریل

نوٹ: اگر آپ کو مانگو ڈی بی کی علم نہیں ہے تو براہ کرم پہلے مانگو ڈی بی کے علم کو مطالعہ کریں۔ گولینگ ٹیوٹوریل میں متعلق علم کو دہرایا نہیں جائے گا۔

بنیادی ضروریات

  • Go 1.10 یا اس سے بلند
  • MongoDB 2.6 یا اس سے بلند

ضروری وابستگیاں انسٹال کریں

go get go.mongodb.org/mongo-driver/mongo

مانگو ڈی بی کے ساتھ منسلک ہوں

import (
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "go.mongodb.org/mongo-driver/mongo/readpref"
)

// مانگو ڈی بی کنیکشن کا پتہ
uri := "mongodb://localhost:27017"
// کنٹیکسٹ آبجیکٹ حاصل کریں، آپ وقت متوقف کر سکتے ہیں
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()

// مانگو ڈی بی کے ساتھ منسلک ہوں
client, err := mongo.Connect(ctx, options.Client().ApplyURI(uri))

Connect فنکشن گوروٹین بلاک نہیں کرتا ہے۔ یعنی Connect میتھڈ کو بلانے کے بعد سیدھا مانگو ڈی بی کو آپریشن کرنے سے نکلنے کی وجہ سے خرابی ہو سکتی ہے۔ آپ Ping میتھڈ کا استعمال کر کے چیک کر سکتے ہیں کہ کیا مانگو ڈی بی نے کنکٹ کر لیا ہے یا نہیں۔

// مانگو ڈی بی کو پنگ کریں، اگر کنکٹ ہوا ہے تو کوئی خرابی واپس کرتا ہے
err = client.Ping(ctx, readpref.Primary())

مانگو ڈی بی کنیکشن کا پتہ

مانگو ڈی بی کنیکشن کا پتہ سرور کا پتہ، پورٹ نمبر، اکاؤنٹ اور پاس ورڈ جیسی اہم معلومات شامل ہوتی ہے۔ فارمیٹ مندرجہ ذیل ہے:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

مثال:

// دیفالٹ یوزرنیم اور پاس ورڈ کے ساتھ ہوسٹ کے مقام: 27017 کے ساتھ منسلک ہوں
mongodb://localhost:27017

// یوزرنیم=root، پاس ورڈ=123456 کے ساتھ ہوسٹ کے مقام:27017 کے ساتھ منسلک ہوں اور دیفالٹ ڈیٹا بیس=admin کو منسلک ہوں
mongodb://root:123456@localhost:27017/admin

کنکشن ریسورسز جاری کریں

اگر کنکشن کی ضرورت نہ ہو تو، آپ کو کنکشن ریسورسز کو دستیاب کرنا ہوگا۔

defer func() {
    if err = client.Disconnect(ctx); err != nil {
        panic(err)
    }
}()

کلیکشن انسٹنس حاصل کریں

مانگو ڈی بی کو گولینگ میں آپریشن کرنے کیلئے، آپ کو پہلے کلیکشن انسٹنس حاصل کرنا ہوگا اور پھر آپ کلیکشن انسٹنس پر کرڈ کی آپریشن کرسکتے ہیں۔

// ڈیٹا بیس نام کو Database کی مدد سے سیٹ کریں اور کلیکشن نام کو Collection کی مدد سے سیٹ کریں
collection := client.Database("testing").Collection("numbers")

نوٹ: مانگو ڈی بی کی خصوصیات کے مطابق، ایسا کردار نہیں ہونا چاہئے کہ ڈیٹا بیس اور کلیکشن پہلے سے تیار کرنے کی ضرورت ہو۔ جب پہلی بار ڈیٹا لکھا جاتا ہے تب وہ خود بخود تیار ہوتے ہیں۔

دستاویز داخل کریں

ــــــــــــــــــــــــــــــــــ

InsertOne تکنیک استعمال کرکے ڈیٹا داخل کریں۔

// سائی نظام ، عام طور پر درخواست کا وقتی حد مقرر کرنے کے لئے استعمال ہوتا ہے ، آپ پہلے بنایا گیا سائی کیسے ضرورت نہیں ہے ، دوبارہ تعریف کرنے کی ضرورت نہیں ہے
ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

// دستاویز ڈالیں ، یہاں ہم json دستاویز کی تفصیل کے لئے bson.D قسم استعمال کرتے ہیں ، bson.D ایک JSON اندراج کو ظاہر کرتا ہے
res, err := collection.InsertOne(ctx, bson.D{{"name", "pi"}, {"value", 3.14159}})

// نئے شامل ہوئے دستاویز کا id حاصل کریں
id := res.InsertedID

آپ کو مندرجہ ذیل پیکیجز درآمد کرنے ہیں:

import (
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "go.mongodb.org/mongo-driver/mongo/readpref"
)

نوٹ: Golang میں ، bson پیکیج استعمال کردیا جاتا ہے تاکہ JSON دستاویز ڈیٹا ڈھانچا کا اظہار کرے۔ آئندہ بابوں میں MongoDB ڈیٹا محفوظ کرنے کے ساختوں کا اظہار وضاحت دی جائے گی۔

پیکیج اہم
import (
	سیاق و سباق
		زبان
		تعیشیہ
		وقت
		"go.mongodb.org/mongo-driver/bson"
		"go.mongodb.org/mongo-driver/mongo"
		"go.mongodb.org/mongo-driver/mongo/options"
		"go.mongodb.org/mongo-driver/mongo/readpref"
)
func main() {
	// MongoDB کنکشن پتہ تعین کریں
	uri := "mongodb://root:123456@localhost:27017/admin"
	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
	defer cancel()
	// MongoDB کے ساتھ رابطہ کریں
	client, err := mongo.Connect(ctx, options.Client().ApplyURI(uri))
	if err != nil {
		panic(err)
	}

	defer func() {
		// تاخیر کے ساتھ کنکشن منسلک کریں
		if err = client.Disconnect(ctx); err != nil {
			panic(err)
		}
	}()

	// چیک کریں کہ MongoDB کنکشن کامیاب ہوا ہے یا نہیں
	if err := client.Ping(ctx, readpref.Primary()); err != nil {
		panic(err)
	}
	fmt.Println("MongoDB کنکشن کامیابی سے منسلک ہوا ہے!")

	// نمبرز کلیکشن حاصل کریں
	collection := client.Database("testing").Collection("numbers")

	// ایک دستاویز ڈالیں
	res, err := collection.InsertOne(ctx, bson.D{{"name", "pi"}, {"value", 3.14159}})
	id := res.InsertedID
	fmt.Println("نیا دستاویز Id =", id)
}