Bagaimanakah saya boleh menyimpan struct bersarang dalam MongoDB sambil mengekalkan strukturnya dalam Go?

Linda Hamilton
Lepaskan: 2024-11-06 01:04:02
asal
219 orang telah melayarinya

How can I store nested structs in MongoDB while preserving their structure in Go?

Menyimpan Struktur Bersarang dengan mgo

Apabila berurusan dengan struktur bersarang dalam Go dan MongoDB, pembangun sering menghadapi cabaran untuk mengekalkan struktur yang diingini semasa storan.

Isu timbul apabila menukar struct Go kepada dokumen MongoDB. Struktur bersarang mudah boleh diratakan untuk mengelakkan storan binari, tetapi meratakan struktur yang lebih kompleks boleh menjejaskan kebolehbacaan kod.

Satu penyelesaian ialah menggunakan teg medan sebaris dalam pakej mgo. Teg sebaris mengarahkan mgo untuk merawat struct terbenam seolah-olah ia sebahagian daripada struct yang mengandungi, mengekalkan hierarki bersarang.

Sebagai contoh, pertimbangkan coretan kod berikut:

<code class="go">type Square struct {
    Length int 
    Width int
}

type Cube struct {
    Square `bson:",inline"`
    Depth int
}</code>
Salin selepas log masuk

Dengan teg sebaris digunakan pada Square, struct terbenam akan diratakan semasa penukaran kepada dokumen MongoDB, menghasilkan dalam:

<code class="json">{
    "Length": 2,
    "Width": 3,
    "Depth": 4
}</code>
Salin selepas log masuk

Pendekatan ini membolehkan pembangun mengekalkan struktur bersarang sambil memastikan data disimpan dalam format yang dikehendaki dalam MongoDB. Tanpa teg sebaris, struct Square bersarang akan disimpan sebagai medan berasingan dalam dokumen Cube.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyimpan struct bersarang dalam MongoDB sambil mengekalkan strukturnya dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!