1. JavaScript SDK

クエリ フィルター

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

警告

この方法を使用して、JavaScript SDKにクエリを作成できます。これはWeb SDKでクエリを作成する方法としては推奨されず、代わりにLINQを使用することに注意してください。

クエリ オブジェクト

Querying clientでは、クエリを定義する必要があります。このクエリでは、次のパラメータがサポートされています。

パラメーター

形容

フィルター

呼び出されるフィルターの種類。

スキップ

スキップするエンティティの数。

取る

取得するエンティティの数。

LoadConfiguration(ロードコンフィギュレーション)

適用する負荷構成。

分別

適用する並べ替えオプション。

IdQueryフィルター

エンティティIDでフィルタリングします。

valueパラメーターは、1つのIDに対してクエリを実行するために使用されます。

import { IdQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/id-query-filter";
import { ComparisonOperator } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/comparison-operator";
import { Query } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/query";

var idQueryFilter = new IdQueryFilter({
  value: entityId,
  operator: ComparisonOperator.Equals
});

var query = new Query({
  filter: idQueryFilter
});

valuesパラメーターは、複数のIDでフィルター処理するために使用されます。

var idQueryFilter = new IdQueryFilter({
  values: [entityId],
  operator: ComparisonOperator.Equals
});

サポートされている比較演算子は次のとおりです。

  • Equals

  • NotEquals

Equals比較演算子は、演算子が指定されていない場合にデフォルトで使用されます。

定義クエリフィルター

エンティティ定義をフィルタリングする機能を提供します。

nameパラメーターは、1つのエンティティ定義の名前でフィルター処理するために使用されます。

import { DefinitionQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/definition-query-filter";
import { ComparisonOperator } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/comparison-operator";
import { Query } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/query";

var definitionQueryFilter = new DefinitionQueryFilter({ name: "M.Asset", operator: ComparisonOperator.Equals });

var query = new Query({
  filter: definitionQueryFilter
});

namesパラメーターは、複数のエンティティ定義名でフィルター処理するために使用されます。

var definitionQueryFilter = new DefinitionQueryFilter({ names: ["M.Asset", "M.Fragment"], operator: ComparisonOperator.Equals });

サポートされている比較演算子は次のとおりです。

  • Equals

  • NotEquals

Equals比較演算子は、演算子が指定されていない場合にデフォルトで使用されます。

プロパティクエリフィルター

1つ以上のプロパティ値に基づいてエンティティをフィルタリングします。指定したデータ型によって、値の型と有効な比較演算子が決まります。

データ型の文字列は、データソースのプロパティに対してクエリを実行するために使用できることに注意してください。

valueパラメーターは、1つの値でフィルター処理するときに使用されます。

import { Query } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/query";
import { PropertyQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/property-query-filter";
import { FilterDataType } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/filter-data-type";
import { ComparisonOperator } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/comparison-operator";

var propertyQueryFilter = new PropertyQueryFilter({
  operator: ComparisonOperator.Equals,
  property: "fileName",
  value: "test.jpg",
  dataType: FilterDataType.String
});

var query = new Query({
  filter: propertyQueryFilter
});

valuesパラメーターを使用して、複数の値でフィルター処理することもできます。これらの値は、OR演算子を使用して解釈されます。これは、指定されたプロパティを持つエンティティのうち、指定された値のいずれかに一致するものがすべて返されることを意味します。

var propertyQueryFilter = new PropertyQueryFilter({
  operator: ComparisonOperator.Equals,
  property: "fileName",
  values: ["test.jpg", "test2.jpg"],
  dataType: FilterDataType.String
});

カルチャは、cultureパラメーターを使用してフィルター処理するように指定できます。これは、多言語プロパティにのみ適用されます。

var propertyQueryFilter = new PropertyQueryFilter({
  operator: ComparisonOperator.Equals,
  property: "fileName",
  value: "test.jpg",
  dataType: FilterDataType.String,
  culture: "en-US"
});

サポートされる比較演算子は、指定したデータ型によって異なります。比較演算子が指定されたコンテキストで有効でない場合は、例外がスローされます。

リレーションクエリフィルタ

1つ以上の親IDを使用して、指定したエンティティとの関係を持つエンティティをフィルター処理します。リレーションの名前は、relationパラメーターで指定する必要があります。

parentIdパラメーターは、1つのリレーション エンティティでフィルター処理するときに使用されます。

import { Query } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/query";
import { RelationQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/relation-query-filter";

var relationQueryFilter = new RelationQueryFilter ({
  relation: "AssetTypeToAsset",
  parentId: assetTypeId
});

var query = new Query({
  filter: relationQueryFilter
});

複数の親IDは、parentIdsパラメーターを使用して指定できます。IDはOR演算子を使用して解釈されます。これは、指定されたプロパティを持つエンティティのうち、指定された値のいずれかに一致するものがすべて返されることを意味します。

var relationQueryFilter = new RelationQueryFilter ({
  relation: "AssetTypeToAsset",
  parentIds: [assetTypeId, assetTypeId2]
});

var query = new Query({
  filter: relationQueryFilter
});

CreatedByQueryFilter (英語)

1人以上のユーザーによって作成されたエンティティをフィルター処理します。

フィルターを適用するには、idプロパティまたはidsプロパティを使用して1つ以上のIDを指定します。

import { Query } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/query";
import { CreatedByQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/createdby-query-filter";
import { ComparisonOperator } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/comparison-operator";

var createdByQueryFilter = new CreatedByQueryFilter({
  id: userId,
  operator: ComparisonOperator.Equals
});

var query = new Query({
  filter: createdByQueryFilter
});

idsパラメーターを使用して複数のIDを指定すると、指定されたユーザー IDのいずれかによって作成されたすべてのエンティティが返されます。

var createdByQueryFilter = new CreatedByQueryFilter({
  ids: [userId, userId2],
  operator: ComparisonOperator.Equals
});

usernameまたはusernamesプロパティを使用して1つ以上のユーザー名を指定することもできます。

var createdByQueryFilter = new CreatedByQueryFilter({
  username: "Administrator",
  operator: ComparisonOperator.Equals
});

複数のユーザー名を指定すると、指定されたユーザーの1人によって作成されたエンティティが返されます。

var createdByQueryFilter = new CreatedByQueryFilter({
  usernames: ["Administrator", "M.Demo.User"],
  operator: ComparisonOperator.Equals
});

サポートされている比較演算子は次のとおりです。

  • Equals

  • NotEquals

Equals比較演算子は、演算子が指定されていない場合にデフォルトで使用されます。

コンポジットクエリフィルター

AND演算子とOR演算子を使用して、さまざまなクエリ フィルターを組み合わせることができます。クエリ フィルターは、複合クエリ フィルターのchildrenパラメーターを使用して指定できます。combineメソッド演算子は、combineMethodパラメーターを使用して指定できます。

import { Query } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/query";
import { PropertyQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/property-query-filter";
import { FilterDataType } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/filter-data-type";
import { ComparisonOperator } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/comparison-operator";
import { DefinitionQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/definition-query-filter";
import { CompositeQueryFilter } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/composite-query-filter";
import { CompositeFilterOperator } from "@sitecore/sc-contenthub-webclient-sdk/dist/contracts/querying/filters/composite-filter-operator";

var definitionQueryFilter = new DefinitionQueryFilter({
  names: ["M.Asset", "M.Fragment"],
  operator: ComparisonOperator.Equals
});

var propertyQueryFilter = new PropertyQueryFilter({
  operator: ComparisonOperator.Equals,
  property: "fileName",
  value: "test.jpg",
  dataType: FilterDataType.String
});

var compositeQueryFilter = new CompositeQueryFilter({
  children: [
    definitionQueryFilter,
    propertyQueryFilter
  ],
  combineMethod: CompositeFilterOperator.Or
});

var query = new Query({
  filter: compositeQueryFilter
});

クエリ読み込みの構成

負荷構成は、QueryオブジェクトのLoadConfigurationで設定できます。

メモ

EntityLoadOptions古いSDKは廃止されました。代わりにLoadConfigurationを使用してください。

この記事を改善するための提案がある場合は、 お知らせください!