Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk membuat pertanyaan pangkalan data MongoDB di Golang

Bagaimana untuk membuat pertanyaan pangkalan data MongoDB di Golang

PHPz
PHPzasal
2023-04-13 09:20:59930semak imbas

Dalam beberapa tahun kebelakangan ini, Golang semakin banyak digunakan dalam bidang pembangunan. Sebagai pangkalan data dokumen yang sangat popular, MongoDB sangat mudah untuk membuat pertanyaan, menambah, mengemas kini dan memadam data dengan cepat dan mudah melalui Golang tanpa memerlukan pernyataan SQL yang menyusahkan. Artikel ini akan memperkenalkan cara menggunakan Golang untuk menanyakan pangkalan data MongoDB.

1. Pasang MongoDB

Sebelum menggunakan MongoDB, anda perlu memasang MongoDB terlebih dahulu. Muat turun dan pasangkannya dari tapak web rasmi Selepas pemasangan berjaya, anda boleh memulakan perkhidmatan MongoDB secara tempatan. Untuk butiran, sila rujuk kepada dokumentasi rasmi.

2. Pasang pemacu MongoDB

Golang tidak menyediakan pemacu MongoDB secara rasmi Anda boleh menggunakan pustaka pihak ketiga "mongo-go-driver" secara rasmi. Jalankan arahan berikut dalam terminal untuk memasang:

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

3 Sambung ke MongoDB

Sebelum menggunakan Golang untuk mengendalikan MongoDB, anda perlu mewujudkan klien MongoDB. sambungan. Anda boleh merujuk kepada kod contoh berikut:

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

func main() {
  // 配置客户端
  clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")

  // 连接 MongoDB
  client, err := mongo.Connect(context.Background(), clientOptions)
  if err != nil {
    fmt.Println("MongoDB Connect Error:", err)
    return
  }

  // 关闭连接
  defer func() {
    if err = client.Disconnect(context.Background()); err != nil {
      panic(err)
    }
  }()
}

4. Kueri data MongoDB

Selepas sambungan berjaya, anda boleh mula menanyakan data dalam pangkalan data MongoDB.

  1. Pertanyakan satu dokumen
collection := client.Database("mydb").Collection("mycollection")
filter := bson.M{"name": "张三"}

var result bson.M
if err = collection.FindOne(context.Background(), filter).Decode(&result); err != nil {
  return
}

Pertanyakan satu dokumen dengan syarat tertentu melalui kaedah FindOne() Parameter filter ialah syarat pertanyaan contoh ini, syarat pertanyaan ialah {“name”:“张三”}. Hasil pelaksanaan akan menyimpan hasil dokumen dalam pembolehubah result dan mengembalikan mesej ralat.

  1. Pertanyakan berbilang dokumen
collection := client.Database("mydb").Collection("mycollection")
filter := bson.M{"age": bson.M{"$gte":18}}

cursor, err := collection.Find(context.Background(), filter)
if err != nil {
  return
}

var results []bson.M
if err = cursor.All(context.Background(), &results); err != nil {
  return
}

Pertanyakan berbilang dokumen dengan syarat yang ditentukan melalui kaedah Cari() Parameter filter ialah syarat pertanyaan , pertanyaan Syaratnya ialah {“age”: {“$gte”:18}}, yang bermaksud menanyakan semua dokumen yang umurnya melebihi atau sama dengan 18 tahun. Hasil pelaksanaan akan menyimpan semua hasil dokumen dalam pembolehubah results dan mengembalikan objek kursor.

  1. Dapatkan satu dokumen
collection := client.Database("mydb").Collection("mycollection")
filter := bson.M{"name": "张三"}

var result bson.M
if err = collection.FindOne(context.Background(), filter).Decode(&result); err != nil {
  return
}

age := result["age"].(int)

Hasil pertanyaan adalah jenis bson.M Jika anda ingin mendapatkan medan tertentu di dalamnya, anda harus mula-mula tukarkannya kepada Gunakan jenis yang sepadan.

Kod contoh di atas hanya memperkenalkan cara menggunakan Golang untuk menanyakan pangkalan data MongoDB Terdapat banyak cara untuk menggunakan MongoDB Anda boleh menyemak dokumentasi MongoDB untuk butiran lanjut. Pada masa yang sama, Golang berdasarkan keupayaan pemprosesan serentak yang cekap Pelajar yang suka Golang boleh mencuba menggunakan Golang dan MongoDB untuk membina sistem pangkalan data teragih berprestasi tinggi.

Atas ialah kandungan terperinci Bagaimana untuk membuat pertanyaan pangkalan data MongoDB di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn