Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan MongoDB untuk pertanyaan data dalam Go

Cara menggunakan MongoDB untuk pertanyaan data dalam Go

PHPz
PHPzasal
2023-04-07 16:59:341449semak imbas

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:

  • Operator bersyarat "$lt" bermaksud kurang daripada
  • "-umur" bermaksud mengisih mengikut urutan terbalik umur
  • "Had" bermaksud hanya mengembalikan 10 keputusan pertama

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!

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