I may be missing something, but can not find any information on Apollo docs about the way to set a many-to-many relation when creating a new entry.
When the relation is one-to-many it is as simple as setting the ID of the one-side of the relationship in the many-side object.
But let's pretend I am working with Books and Authors, how would I write a graphql query that creates a Book for one (or many?) Authors?
This should probably happen at the API layer on the GraphQL server (i.e. schema). For many-to-many relationships, you should have a "join" type to denote the
BookAuthor
many-to-many relationship, and then add an entry to that join type.Essentially then you'll have a type called
Book
, another calledAuthor
, and finally one more calledBookAuthor
. And you can add a few mutations to be able to manage that relationship. Perhaps...addToBookAuthorConnection
updateBookAuthorConnection
removeFromBookAuthorConnection
This is a conventional setup using a Relay-spec compliant API. You can read more about how to structure your API for many-to-many relationships here.
Then, you only need to call the
addToBookAuthorConnection
mutation from Apollo instead to be able to add to that many-to-many connection on your frontend.Hope this helps!
If u r using apollo graph server with one to many relations then connectors.js, resolvers.js and schema.js files as given formats
schema.js
resolvers.js
connectors.js