如何通过GraphQL查询MongoDB集合中的_id字段?
解决方法
要在GraphQL中查询MongoDB的_id字段,需要完成以下三步操作:
1. 更新GraphQL Schema,添加_id字段
GraphQL只会返回Schema中明确定义的字段,所以必须先把_id加入类型定义:
type Course { _id: ID! title: String! description: String class_id: ID! }
2. 修改Go语言Course模型,映射MongoDB的_id
MongoDB的_id默认是ObjectID类型,需要在Go模型中添加对应字段并配置bson/json标签,确保能正确解码数据库数据:
import "go.mongodb.org/mongo-driver/bson/primitive" type Course struct { ID primitive.ObjectID `bson:"_id" json:"_id"` Title string `json:"title"` Description *string `json:"description,omitempty"` ClassID string `json:"class_id"` }
bson:"_id":对应MongoDB文档中的_id字段json:"_id":对应GraphQL Schema中的_id字段,保证字段名一致
3. 解析器无需额外修改
你的GetCourses解析器逻辑可以保留原样,cursor.Decode(&course)会自动将MongoDB中的_id值映射到模型的ID字段,GraphQL会自动把primitive.ObjectID序列化为字符串类型的ID返回给客户端。
内容的提问来源于stack exchange,提问作者valga
相关产品推荐
相关产品推荐

