Edit: I found a workout, see my comment below.
Hey there Contentful Community!
I’m in the process of setting up a new Angular app, using Contentful for the first time, and I’m liking it a lot so far
TLDR
Is it possible to set query params to check if either, a field doesn’t exist or if it does exist and has a specific id?
I’ve managed to do each part of this separately. This for example, returns jobs where no countries have been selected:
'fields.country.sys.id[exists]': false
And, the following returns jobs which have been filed under a specific country id.
'fields.country.sys.id[in]': 'Lw9e5ljC7M2UmgGi2ftZk'
But when joined together, I get nothing
content_type: 'job',
'fields.country.sys.id[exists]': false,
'fields.country.sys.id[in]': 'Lw9e5ljC7M2UmgGi2ftZk',
});
Background and longer explanation
I have a content type, Jobs, which has a one-to-many reference field called Countries that accepts entries from another content type… Countries (this is one example, but applies to many fields).
On the frontend you can select a country to show jobs from. I can specify the selected country ids in the query and it works well.
'fields.country.sys.id[in]': 'Lw9e5ljC7M2UmgGi2ftZk'
However, I would also like jobs with no countries selected, to act like jobs with all countries selected. I can achieve this by checking to see if the field exists:
'fields.country.sys.id[exists]': false
However, when I combine both, it fails, presumably as it’s treat the request like exists = false and is in id x.
The main reason why I would like countries (or any other reference field) to behave this way, is that it would be too much effort to link every country manually, potentially nearly 200.
Alternatively a select all checkbox in the Contentful editor would work, but that doesn’t seem to exist!
If anyone has any ideas of how I could achieve this, I’d be super grateful. Or if anyone has any workaround, I’d love to hear them.
Thanks in advance and please let me know if I’ve not explained anything clearly.
Adam