graphql-compose / graphql-compose-mongoose

Mongoose model converter to GraphQL types with resolvers for graphql-compose https://github.com/nodkz/graphql-compose
MIT License
708 stars 94 forks source link

Use union types for indexed filter inputs with operators #386

Open murillo128 opened 2 years ago

murillo128 commented 2 years ago

I have struggled for a couple of days in how to make the operators to work with input fields as the syntax is a bit awkward compared to the typical mongodb filters.

I was thinking if it could be possible to use instead of the scalar input type and the operator type an union of both types. That way instead of doing:

find(filter:{value:1})
find(filter:{_operators:{value:{gt:1}})

we could allow both type of queries:

find(filter:{value:1})
find(filter:{value:{gt:1}})

I am willing to work on a PR for this, but I would need some feedback/pointers/help.

Up to now, I have been able to create a UnionTypeComposer from both types, but I don't know how replace the original input filter type with the union one.