Document Service API: フィルター
Document Service API では、クエリ結果をフィルターで絞り込めます。
次の演算子が使えます。
| 演算子 | 説明 |
|---|---|
$eq | 等しい |
$eqi | 等しい(大文字・小文字を区別しない) |
$ne | 等しくない |
$nei | 等しくない(大文字・小文字を区別しない) |
$lt | より小さい |
$lte | 以下 |
$gt | より大きい |
$gte | 以上 |
$in | 配列に含まれる |
$notIn | 配列に含まれない |
$contains | 含む |
$notContains | 含まない |
$containsi | 含む(大文字・小文字を区別しない) |
$notContainsi | 含まない(大文字・小文字を区別しない) |
$null | null である |
$notNull | null でない |
$between | 範囲内(両端を含む) |
$startsWith | 前方一致 |
$startsWithi | 前方一致(大文字・小文字を区別しない) |
$endsWith | 後方一致 |
$endsWithi | 後方一致(大文字・小文字を区別しない) |
$or | フィルターを OR で結合 |
$and | フィルターを AND で結合 |
$not | フィルターを NOT で結合 |
Deep filtering with the various APIs
For examples of how to deep filter with the various APIs, please refer to this blog article.
属性オペレーター
$not
内側の条件を否定します。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$not: {
$contains: 'Hello World',
},
},
},
});
$eq
属性が入力値と等しい。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$eq: 'Hello World',
},
},
});
$eq は省略できます。
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: 'Hello World',
},
});
$eqi
属性が入力値と等しい(大文字・小文字を区別しない)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$eqi: 'HELLO World',
},
},
});
$ne
属性が入力値と等しくない。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$ne: 'ABCD',
},
},
});
$nei
属性が入力値と等しくない(大文字・小文字を区別しない)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$nei: 'abcd',
},
},
});
$in
属性の値が入力リストに含まれる。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$in: ['Hello', 'Hola', 'Bonjour'],
},
},
});
値の配列を直接渡すと $in と同じ意味になります。
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: ['Hello', 'Hola', 'Bonjour'],
},
});
$notIn
属性の値が入力リストに含まれない。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$notIn: ['Hello', 'Hola', 'Bonjour'],
},
},
});
$lt
属性が入力値より小さい。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
rating: {
$lt: 10,
},
},
});
$lte
属性が入力値以下。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
rating: {
$lte: 10,
},
},
});
$gt
属性が入力値より大きい。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
rating: {
$gt: 5,
},
},
});
$gte
属性が入力値以上。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
rating: {
$gte: 5,
},
},
});
$between
属性が 2 つの入力値のあいだ(両端を含む)。例: $between: [1, 3] なら 1 と 3 も一致。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
rating: {
$between: [1, 20],
},
},
});
$contains
属性が入力値を含む(大文字・小文字を区別)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$contains: 'Hello',
},
},
});
$notContains
属性が入力値を含まない(大文字・小文字を区別)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$notContains: 'Hello',
},
},
});
$containsi
属性が入力値を含む。$containsi は大文字・小文字を区別せず、$contains は区別します。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$containsi: 'hello',
},
},
});
$notContainsi
属性が入力値を含まない。$notContainsi は大文字・小文字を区別せず、$notContains は区別します。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$notContainsi: 'hello',
},
},
});
$startsWith
属性が入力値で始まる(大文字・小文字を区別)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$startsWith: 'ABCD',
},
},
});
$startsWithi
属性が入力値で始まる(大文字・小文字を区別しない)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$startsWithi: 'ABCD', // 'abcd' で絞った場合と同様
},
},
});
$endsWith
属性が入力値で終わる(大文字・小文字を区別)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$endsWith: 'ABCD',
},
},
});
$endsWithi
属性が入力値で終わる(大文字・小文字を区別しない)。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$endsWithi: 'ABCD', // 'abcd' で絞った場合と同様
},
},
});
$null
属性が null である。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$null: true,
},
},
});
$notNull
属性が null でない。
例
const entries = await strapi.documents('api::article.article').findMany({
filters: {
title: {
$notNull: true,
},
},
});