You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:05:03