エンティティ参照フィールド「field_things」があり、0個以上の「thing」ノードを参照できるノードタイプ「group」があります。 entityQueryを使用して、field_thingsの値が1つだけであり、その値が特定の「もの」であるすべての「グループ」を見つけたいと思います。
これらの2つの要件をどのように組み合わせるかは、ドキュメントからはわかりません。
したがって、entityQuery()
はこれを実行できないようですが、entityQueryAggregate()
は実行できます。以下は、元の投稿の目的を達成する例です。
_$thing_id = 101;
$q = \Drupal::entityQueryAggregate('node')
->condition('type', 'group')
->condition('field_things', $thing_id)
->groupBy('nid')
->conditionAggregate('field_things', 'COUNT', 1);
$res = $q->execute();
_
dpm($res)
を実行すると、次のように表示されます。
_Array
(
[0] => Array
(
[nid] => 85
[field_things_count] => 1
)
[1] => Array
(
[nid] => 33
[field_things_count] => 1
)
[2] => Array
(
[nid] => 57
[field_things_count] => 1
)
[3] => Array
(
[nid] => 54
[field_things_count] => 1
)
)
_