Go ialah bahasa pengaturcaraan sumber terbuka yang digunakan secara meluas oleh banyak pembangun. Go juga cemerlang dalam menulis pertanyaan yang cekap dan ringkas apabila berinteraksi dengan pangkalan data MongoDB. Artikel ini akan memperkenalkan cara menggunakan MongoDB untuk membuat pertanyaan dalam Go.
Pertama, kita perlu memasang pemacu "mgo" Go-MongoDB, yang boleh dipasang menggunakan arahan berikut:
go get gopkg.in/mgo.v2
Selepas pemasangan berjaya, kita boleh mula menyambung ke MongoDB pangkalan data dan melaksanakan operasi pertanyaan. Berikut ialah kod pertanyaan asas MongoDB:
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("localhost:27017") if err != nil { panic(err) } defer session.Close() c := session.DB("test").C("people") result := Person{} err = c.Find(bson.M{"name": "John"}).One(&result) if err != nil { panic(err) } fmt.Println("Phone:", result.Phone) }
Dalam contoh ini, kami mula-mula mencipta struktur "Orang" untuk mewakili atribut dokumen yang ingin ditanya. Kami menggunakan kaedah "mgo.Dial" untuk menyambung ke pangkalan data MongoDB (dalam kes ini pelayan pada localhost) dan mencipta contoh sesi. Kami kemudian membuka koleksi "Orang" dan melakukan pertanyaan menggunakan kaedah "c.Cari". Dalam kes ini kami sedang mencari dokumen dengan nama "John" dan jika dijumpai kami menyimpan hasilnya dalam pembolehubah "hasil" dan mencetak nombor telefon.
Selain pertanyaan asas, anda juga boleh menggunakan beberapa kaedah dan operator bersyarat untuk menapis dan mengisih pertanyaan. Berikut ialah contoh set kaedah biasa dan pengendali bersyarat:
err = c.Find(bson.M{"age": bson.M{"$lt": 30}}).Sort("-age").Limit(10).All(&results)
Baris kod ini menggunakan syarat berikut:
Anda juga boleh menggunakan "Pilih " kaedah untuk memilih medan yang akan dikembalikan:
err = c.Find(nil).Select(bson.M{"name": 1}).All(&results)
Dalam contoh ini, kami hanya memilih medan "nama". Jika kita perlu mengecualikan medan tertentu, kita boleh menetapkan medan itu kepada 0.
err = c.Find(nil).Select(bson.M{"name": 1, "age": 0}).All(&results)
Di atas ialah pengetahuan asas menggunakan MongoDB untuk pertanyaan dalam Go. Sudah tentu, hanya sebahagian daripadanya diliputi di sini. Jika anda ingin mengetahui lebih lanjut tentang pertanyaan MongoDB dan pemacu Go-MongoDB, sila rujuk bahan yang berkaitan untuk dipelajari.
Atas ialah kandungan terperinci Cara menggunakan MongoDB untuk pertanyaan data dalam Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!