Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dapatkan semua data daripada koleksi komposit mongodb menggunakan penapis dalam golang

Dapatkan semua data daripada koleksi komposit mongodb menggunakan penapis dalam golang

WBOY
WBOYke hadapan
2024-02-06 10:36:13610semak imbas

Dapatkan semua data daripada koleksi komposit mongodb menggunakan penapis dalam golang

Kandungan soalan

Saya cuba mendapatkan semua data menggunakan medan nama yang saya nyatakan dalam badan permintaan api. Saya telah mencipta penapis untuk fungsi .find(). Tetapi saya tidak boleh mendapatkan sebarang keputusan (badan tindak balas menunjukkan batal, tiada ralat sama sekali). Anda boleh melihat fail model saya dan kod yang lain di bahagian bawah.

Pengawal:

func get_formbypatientfullname(ctx *gin.context) {
   col := mongodb.client.database(config.database_name).collection("consentforms")
   filter := bson.m{"patient": bson.m{"name": ctx.query("name")}}

   cursor, err := col.find(_context.todo(), filter)
   if err != nil {
      log.fatal(err)
   }

   var results []general_models.consentform
   if err = cursor.all(_context.todo(), &results); err != nil {
      log.fatal(err)
   }
   for _, result := range results {
      res, _ := json.marshal(result)
      fmt.println(string(res))
   }
   ctx.indentedjson(http.statusok, gin.h{"data": results})
}

Fail model:

type ConsentForm struct {
   ID                 primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
   FormFileURL        string             `json:"FormFileURL" bson:"FormFileURL"`
   ProcessName        string             `json:"ProcessName" bson:"ProcessName"`
   DateOfNotification string             `json:"DateOfNotification" bson:"DateOfNotification"`
   WitnessName        string             `json:"WitnessName" bson:"WitnessName"`
   WitnessSurname     string             `json:"WitnessSurname" bson:"WitnessSurname"`
   ResponsibleDoctor  string             `json:"ResponsibleDoctor" bson:"ResponsibleDoctor"`
   Patient            IPatient           `json:"Patient" bson:"Patient"`
   QuestionOptions    IQuestionOptions   `json:"QuestionOptions" bson:"QuestionOptions"`
   AdditionalDetails  string             `json:"AdditionalDetails" bson:"AdditionalDetails"`
}

type IPatient struct {
   // ID                primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
   Name              string `json:"Name" bson:"Name"`
   Surname           string `json:"Surname" bson:"Surname"`
   Birthdate         string `json:"Birthdate" bson:"Birthdate"`
   TCKN              string `json:"TCKN" bson:"TCKN"`
   FacePhotoURL      string `json:"FacePhotoURL" bson:"FacePhotoURL"`
   SignatureImageURL string `json:"SignatureImageURL" bson:"SignatureImageURL"`
}

Saya cuba menapis berdasarkan nama pengguna dan mendapatkan semua data pengguna. Tetapi saya fikir saya mempunyai pepijat dalam bahagian penapis atau keseluruhan kod kerana saya tidak boleh mendapatkan semula sebarang data. Apa yang saya dapat sebagai balasan adalah kosong.


Jawapan Betul


Penapis anda akan memadankan dokumen dengan medan patient 是嵌入文档且具有与给定值匹配的单个 name di dalamnya.

Untuk menapis mengikut medan yang dibenamkan dalam dokumen, anda mesti menggunakan notasi titik:

filter := bson.M{"Patient.Name": ctx.Query("name")}

Atas ialah kandungan terperinci Dapatkan semua data daripada koleksi komposit mongodb menggunakan penapis dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam