Filtering collections by metafields using 'where'

Hi,

Is there anyway to filter collections with metafields?

https://community.shopify.com/c/shopify-design/filtering-collection-by-metafields-in-theme/m-p/1753827#M469431


We have some metafields on our collections and we want to filter the collection by the metafield, to display only collections where the metafield: is_vendor is set to true.

For example:

{% assign vendors_collection = collections | where "collection.metafields.custom.is_vendor, true %}

This doesn’t seem to work.

We are currently using a conditional operator to only show the vendors but I assume their is a better way of doing this.

Here is the code we currently have to display only vendors:

{% assign vendors_collection = collections %}
{% for collection in vendors_collection %}
      {% if collection.metafields.custom.is_vendor == true %}
            {% render 'custom-collection-card' %}
      {% endif %}
{% endfor %}

Please try this code instead

{% assign vendors_collection = collections | where "collection.metafields.custom.is_vendor.value, true %}