Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Lulus Dokumen BSON dalam Go Lang untuk Kemasukan MongoDB?

Bagaimana untuk Lulus Dokumen BSON dalam Go Lang untuk Kemasukan MongoDB?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 06:47:10448semak imbas

How to Pass BSON Documents in Go Lang for MongoDB Insertion?

Meluluskan Dokumen BSON dalam Go Lang

Apabila bekerja dengan MongoDB dalam Go Lang, membina dan menghantar dokumen BSON boleh menimbulkan cabaran. Dalam artikel ini, kami akan menyelidiki secara khusus tugasan ini, menggunakan pakej mgo untuk interaksi MongoDB.

Masalah:

Anda sedang cuba untuk lulus Dokumen BSON yang dibuat dalam account.go ke dbEngine.go untuk dimasukkan ke dalam MongoDB. Walau bagaimanapun, anda menghadapi ralat: "Tidak boleh mengawal antara muka {} sebagai dokumen BSON."

Penyelesaian:

Untuk mengelakkan ralat ini, ia tidak perlu dilakukan secara manual buat dokumen BSON. Sebaliknya, mengikut langkah ini akan memudahkan proses:

  1. Tentukan Struct dalam account.go:

    • Buat struct yang dipanggil Akaun mewakili struktur dokumen.
    • Anotasi medan struktur dengan tag bson untuk menentukan medan BSON yang sepadan nama (cth., "_id" : bson.ObjectId bson:"_id"`").
  2. Kemas kini Fungsi Sisipan dalam dbEngine.go:

    • Tukar jenis parameter fungsi Sisipkan kepada antara muka{}.
    • Dalam fungsi, wujudkan sambungan MongoDB menggunakan fungsi mgo.Dial.
    • Dapatkan pemegang koleksi menggunakan session.DB("db_name").C("collection_name" ).
    • Lakukan sisipan menggunakan c.Sisipkan(dokumen).
  3. Penggunaan dalam Aplikasi Anda:

    • Mulakan contoh struct Akaun.
    • Tetapkan nilai pada medan struct.
    • Pas rujukan struct Akaun (cth., &acc) kepada fungsi dbEngine.Insert.

Dengan mematuhi langkah-langkah ini, anda boleh menghapuskan ralat marshalling dan lulus dokumen BSON dengan berkesan untuk dimasukkan ke dalam MongoDB menggunakan Go Lang.

Atas ialah kandungan terperinci Bagaimana untuk Lulus Dokumen BSON dalam Go Lang untuk Kemasukan MongoDB?. 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