Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk membuat pertanyaan mongo dalam golang

Bagaimana untuk membuat pertanyaan mongo dalam golang

PHPz
PHPzasal
2023-04-25 10:31:54966semak imbas

Golang ialah bahasa pengaturcaraan sumber terbuka yang digunakan secara meluas dalam pengkomputeran awan, rangkaian, sistem teragih dan bidang lain. MongoDB ialah pangkalan data berorientasikan penyimpanan dokumen berprestasi tinggi, berskala, yang digemari oleh banyak pembangun. Artikel ini akan memperkenalkan cara menggunakan Golang untuk menanyakan pangkalan data MongoDB.

1. Pasang pemacu pangkalan data

Sebelum menggunakan Golang untuk menyambung ke MongoDB, anda perlu memasang pemacu bahasa Go MongoDB. Ia boleh dipasang dengan melaksanakan arahan berikut:

go get gopkg.in/mgo.v2

Nama pemacu bahasa Go ini ialah "mgo", yang membolehkan kami mengendalikan pangkalan data MongoDB melalui program Go.

2. Sambung ke pangkalan data MongoDB

Sebelum mula menanyakan MongoDB, anda perlu mewujudkan sambungan dengan pangkalan data MongoDB. Ini boleh dicapai dengan kod berikut:

package main
import (
    "fmt"
    "gopkg.in/mgo.v2"
)
func main() {
    session, err := mgo.Dial("mongodb://localhost:27017")
    if err != nil {
        panic(err)
    }
    defer session.Close()
    // ...
}

Dalam kod ini, kami menggunakan kaedah "Dail" dalam pakej "mgo" untuk menyambung ke pangkalan data MongoDB. Apabila memanggil, kita perlu menghantar alamat pangkalan data MongoDB. Dalam aplikasi sebenar, alamat pangkalan data MongoDB yang betul perlu dihantar kepadanya.

3. Tanya pangkalan data MongoDB

Selepas anda mempunyai sesi yang disambungkan ke MongoDB, anda boleh melakukan operasi pertanyaan. Dalam contoh di bawah, kami akan mendapat semua dokumen daripada koleksi bernama "testdb".

package main
import (
    "fmt"
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
)
type Person struct {
    Name string
    Phone string
}
func main() {
    session, err := mgo.Dial("mongodb://localhost:27017")
    if err != nil {
        panic(err)
    }
    defer session.Close()
    // 获取指定数据库的集合
    c := session.DB("test").C("testdb")
    // 查询集合中的所有文档
    var result []Person
    err = c.Find(bson.M{}).All(&result)
    if err != nil {
        panic(err)
    }
    // 输出结果
    for _, v := range result {
        fmt.Println("Name:", v.Name, "Phone:", v.Phone)
    }
}

Dalam contoh ini, kami mencipta struktur yang dipanggil "Orang". Medan "Nama" dan "Telefon" struktur ini digunakan untuk menyimpan data dalam dokumen. Kemudian kami akan melakukan operasi pertanyaan melalui kaedah "Cari" dan "Semua" dalam pakej "mgo". Semasa menjalankan operasi pertanyaan, kami menggunakan fungsi "bson.M" untuk mencipta objek bson kosong supaya kami boleh menggunakannya dalam pertanyaan. Kami kemudiannya menyimpan keputusan dalam pembolehubah jenis "[]Orang" dan lelaran ke atas keputusan dan mengeluarkan hasilnya.

4. Pertanyaan bersyarat

Dalam pertanyaan sebenar, kami biasanya perlu menapis dokumen dalam koleksi berdasarkan syarat. Berikut ialah contoh pertanyaan untuk maklumat tentang orang bernama "Joe".

// 查询名字为“Joe”的人的信息
err = c.Find(bson.M{"Name": "Joe"}).All(&result)
if err != nil {
    panic(err)
}
// 输出结果
for _, v := range result {
    fmt.Println("Name:", v.Name, "Phone:", v.Phone)
}

Dalam contoh ini, kami melengkapkan operasi pertanyaan dengan menghantar bson.M yang mengandungi nilai medan "Nama" bagi "Joe" sebagai syarat pertanyaan.

Berikut ialah contoh untuk menanyakan maklumat semua orang yang nombor telefonnya mengandungi "123".

// 查询电话号码包含“123”的人的信息
err = c.Find(bson.M{"Phone": bson.M{"$regex": "123"}}).All(&result)
if err != nil {
    panic(err)
}
// 输出结果
for _, v := range result {
    fmt.Println("Name:", v.Name, "Phone:", v.Phone)
}

Dalam contoh ini, kami melengkapkan operasi pertanyaan dengan menghantar bson.M yang mengandungi nilai medan "Telefon" "$regex:123" sebagai syarat pertanyaan. Antaranya, "$regex" ialah aksara khas yang mewakili ungkapan biasa, yang digunakan untuk memadankan orang yang nombor telefonnya mengandungi "123".

Ringkasan

Artikel ini memperkenalkan cara menggunakan Golang untuk menyambung ke MongoDB dan menunjukkan cara melaksanakan operasi pertanyaan mudah melalui beberapa contoh. Dalam aplikasi praktikal, kaedah pertanyaan MongoDB boleh dilaraskan mengikut keperluan khusus. Pada masa yang sama, prestasi cemerlang Golang dan sintaks yang mudah digunakan juga menyediakan pilihan yang lebih baik untuk mengendalikan pangkalan data MongoDB.

Atas ialah kandungan terperinci Bagaimana untuk membuat pertanyaan mongo dalam 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