You are asking two questions. One in the title and one in the text.
To answer the first one: Is GraphQL implemented differently in FaunaDB…
My first react is… as compared to what?
I believe Fauna uses the Scala library Sangria as a GraphQL server. I might be wrong. But I am more confident that it is not embedded in the DB or anything like that. It’s a regular, compliant GraphQL server. In this sense, no it’s not different, it’s the same as all other compliant GraphQL servers.
What’s more confusing is the schema that we upload. The schema that you upload is just short-hand for what is really served, which you can of course check in the dashboard after you upload your schema. Fauna provides directives that you can use to make your intent clear while uploading the “short-hand” schema. Fauna then adds or in some places completely changes the imported schema, such as when adding pagination for relationships.
Fauna does have a unique take on generating a full CRUD API based on the “short-hand” schema. As compared to Prisma or some other cloud DB’s out there.
To answer your more specific question: How to do
a search by what is essentially a foreign-key is only possible (as of now) by creating a UDF and using
@resolver. Please check this out and reply back if you have further questions!