メタオブジェクトインデックスで絞り込みとして使用するについて

Topic summary

課題:
メタオブジェクト(type1)のフィールドに別のメタオブジェクト(type2)を設定し、「メタオブジェクトインデックスで絞り込みとして使用する」機能を使ってLiquidで絞り込む方法についての質問。

提案された解決策:
回答者が以下のようなコードを提案:

  • shop.metafields.namespace.key.valueでメタオブジェクトを取得
  • whereフィルターを使用して絞り込み(| where: "fields.type2_field", "desired_value")

現状:
質問者が実際に試したが、うまく動作しなかった。

具体的な構成:

  • オブジェクト1: styling (フィールド: name, model)
  • オブジェクト2: model (フィールド: name)
  • 試したコード: {% assign styles_list = shop.metaobjects.styling.values %}whereフィルターの組み合わせ

ステータス:
問題は未解決のまま。提案された方法では絞り込みができず、追加のサポートが必要な状態。

Summarized with AI on November 8. AI used: claude-sonnet-4-5-20250929.

メタオブジェクト(type1)のフィールドに別のメタオブジェクト(type2)を設定しています。

その際に「メタオブジェクトインデックスで絞り込みとして使用する」にチェックを入れることで

メタオブジェクト(type1)を絞り込むことができると思うのですが、liquidでどのように書けば良いでしょうか。

https://shopify.dev/docs/api/liquid/objects/metaobject

ドキュメントの通りメタオブジェクトを取得することはできています。

ご教示いただきたく存じます。

1 Like

質問拝見しました。

以下コードで調整できますでしょうか?

適宜、実際のメタオブジェクトの名前空間とキーに置き換えてください。

{%- assign type1_objects = shop.metafields.namespace.key.value %}

{%- assign filtered_objects = type1_objects | where: "fields.type2_field", "desired_value" -%}

{%- for obj in filtered_objects -%}
  
    ## {{ obj.fields.title }}
    

{{ obj.fields.description }}

    
  

{%- endfor -%}

ご参考までにしていただけますと幸いです。

お悩み解決できましたら、ベストアンサー、いいねいただけると励みになります。
何卒よろしくお願いします。

株式会社フルバランス

ご回答いただき誠にありがとうございます。

実際に試してみたのですが、うまくいきませんでした。

下記が実際の内容です。

オブジェクト1: styling

フィールド: name, model(オブジェクト2)

オブジェクト2: model

フィールド: name

{% assign styles_list = shop.metaobjects.styling.values %}
{% assign filtered_objects = styles_list | where: 'model.value.name', '名前' %}

    {% for obj in filtered_objects %}
      
        

{{ obj.name }}

        

{{ obj.model.value.name }}

      

    {% endfor %}

この方法では絞り込むことができませんでした。