问题内容
我尝试使用我在 api 请求正文中指定的名称字段获取所有数据。我为 .find() 函数创建了一个过滤器。但我无法得到任何结果(响应正文显示 null,根本没有错误)。您可以在底部看到我的模型文件和代码的其他部分。
控制器:
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})
}
模型文件:
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"`
}
我尝试根据用户名过滤并获取用户的所有数据。但我认为我在过滤器部分或整个代码中存在错误,因为我无法获得任何数据返回。我得到的回报是空的。
正确答案
您的过滤器将匹配其中 patient
是嵌入文档且具有与给定值匹配的单个 name
字段的文档。
要按嵌入文档的字段进行过滤,您必须使用点符号:
filter := bson.M{"Patient.Name": ctx.Query("name")}
以上就是使用golang中的过滤器从mongodb复合集合中获取所有数据的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机 咦!没有更多了?去看看其它编程学习网 内容吧