graphql-go / graphql-go/graphql

MongoDB _id field

Open
#676 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
10.1k
Forks
845
PR merge metrics
No merged PRs in 30d

Description

Hey guys.

It must be silly, but I'm not managing to evolve in this issue of ID fields.

Example:

```
# schema.graphql

type Mutation {
createISP(isp: NewISP!): ISP!
}

type ISP {
ID: ID!
Name: String!
Location: String!
Devices: [Devices]
}

input NewISP {
Name: String!
Location: String!
}
```
```

// isp.resolver.go

type ISP struct {
IDField graphql.ID
NameField string
LocationField string
DevicesField *[]*Device
}

func (i *ISP) ID() graphql.ID {
return i.IDField
}

func (i *ISP) Name() string {
return i.NameField
}

func (i *ISP) Location() string {
return i.LocationField
}

func (r *Resolver) GetISPs() []*ISP {

var results []*ISP
cursor, err := DB.Find(context.Background(), bson.M{})
if err != nil {
return nil
}
if err := cursor.All(context.Background(), &results); err != nil {
return nil
}
return results
}

type NewISP struct {
Name string
Location string
}

func (r *Resolver) CreateISP(args *struct{ Isp NewISP }) *ISP {

// create new
ispId := randomID() // Here I make a fake ID for testing because I couldn't use the id of the mongo object.

isp := &ISP{
IDField: graphql.ID(ispId),
NameField: args.Isp.Name,
LocationField: args.Isp.Location,
}

DB.InsertOne(ctx, isp)

return isp
}

```
- I'm wanting to use _id as an identification field and not need to create a new field for it as I did with IdField
![image](https://github.com/graphql-go/graphql/assets/25672235/73187728-7e22-4025-b576-ec0119ac88d2)

Can you help me with this issue?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.