Maison > Article > développement back-end > Obtenez toutes les données de la collection composite MongoDB en utilisant le filtre dans Golang
J'essaie d'obtenir toutes les données en utilisant le champ de nom que j'ai spécifié dans le corps de la demande d'API. J'ai créé un filtre pour la fonction .find(). Mais je ne parviens à obtenir aucun résultat (le corps de la réponse affiche null, aucune erreur). Vous pouvez voir mon fichier modèle et le reste du code en bas.
Contrôleur :
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}) }
Fichier modèle :
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"` }
J'essaie de filtrer en fonction du nom d'utilisateur et d'obtenir toutes les données de l'utilisateur. Mais je pense que j'ai un bug dans la partie filtre ou dans tout le code car je ne parviens à récupérer aucune donnée. Ce que je reçois en retour est vide.
Votre filtre correspondra aux documents contenant le champ patient
是嵌入文档且具有与给定值匹配的单个 name
.
Pour filtrer par champ intégré dans le document, vous devez utiliser la notation par points :
filter := bson.M{"Patient.Name": ctx.Query("name")}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!