Rumah >pembangunan bahagian belakang >Golang >Mengapa Pertanyaan FindById mgo Saya Mengembalikan Sifar Apabila Data Wujud?

Mengapa Pertanyaan FindById mgo Saya Mengembalikan Sifar Apabila Data Wujud?

Patricia Arquette
Patricia Arquetteasal
2024-12-09 02:43:13645semak imbas

Why Does My mgo FindById Query Return Zero When Data Exists?

Cari mengikut ID dalam MongoDB menggunakan mgo

Mencari data melalui IDnya dalam MongoDB menggunakan mgo ialah operasi biasa. Walau bagaimanapun, isu boleh timbul apabila cuba mendapatkan semula data yang diketahui wujud, namun pertanyaan itu mengembalikan hasil kosong. Artikel ini meneroka kemungkinan punca isu ini dan menyediakan penyelesaian berdasarkan soalan dan jawapan yang disediakan.

Dalam soalan, pengguna cuba mendapatkan data menggunakan kaedah FindId, menghantar ID sebagai rentetan heksadesimal. Walau bagaimanapun, nilai yang dikembalikan sentiasa 0. Ini boleh berlaku atas dua sebab:

  1. Penggunaan FindId yang salah: FindId harus digunakan dengan nilai ID mentah, bukan perwakilan heksadesimal . Gantikan bson.ObjectIdHex("58593d1d6aace357b32bb3a1") dengan bson.ObjectId("58593d1d6aace357b32bb3a1").
  2. Nama medan yang tidak sepadan dengan nama ID goDB yang dijangkakan: Nama medan yang tidak sepadan dengan yang dijangkakan
  3. Mon. IdCookie medan dalam struct. Gunakan tag struct untuk menentukan pemetaan medan yang betul, cth., bson:"myid".

Untuk mengoptimumkan sambungan pangkalan data, adalah disyorkan untuk menyambung ke pelayan MongoDB sekali dan menggunakan semula sesi dan bukannya berulang kali mewujudkan sambungan.

Dengan menangani isu yang berpotensi ini, pengguna seharusnya berjaya mencari data melalui ID menggunakan mgo.

Atas ialah kandungan terperinci Mengapa Pertanyaan FindById mgo Saya Mengembalikan Sifar Apabila Data Wujud?. 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