Drupal 7のデータベースから特定のノードを取得するための標準は次のようになります:
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node');
$query->entityCondition('bundle', 'page');
$query->fieldCondition('field_category', 'value', $category_id);
$result = $query->execute();
$nids = array_keys($result['node']);
$nodes = node_load_multiple($nids);
パフォーマンスを向上させるために、ノードのすべてのフィールドをロードするのではなく、ノードの特定のフィールド(たとえば、タイトル)のみをロードするように指定する方法はありますか?
私はSQLを使用しないソリューションを好みますDrupal関数が提供する機能(信頼性、結果のキャッシュ、将来の保証など))。
ありがとうございました。
いいえ、ありません。 EFQはエンティティIDのみを返すことができます。
それを回避する方法はあるかもしれませんが、その論理的な理由があります。モジュールはさまざまなフックでこれらのフィールドの値を変更する可能性がありますが、直接返される値がエンティティのロード時と同じである保証はありません。