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"式で結合する |
属性演算子
$not
ネストされた条件を否定します。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$not: {
$contains: 'Hello World',
},
},
},
});
$eq
属性が入力値と等しい。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$eq: 'Hello World',
},
},
});
$eqは省略可能です:
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: 'Hello World',
},
});
$eqi
属性が入力値と等しい(大文字小文字を区別しない)。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$eqi: 'HELLO World',
},
},
});
$ne
属性が入力値と等しくない。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$ne: 'ABCD',
},
},
});
$nei
属性が入力値と等しくない(大文字小文字を区別しない)。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$nei: 'abcd',
},
},
});
$in
属性が入力リストに含まれている。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$in: ['Hello', 'Hola', 'Bonjour'],
},
},
});
値の配列を渡す場合、$inは省略可能です:
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: ['Hello', 'Hola', 'Bonjour'],
},
});
$notIn
属性が入力リストに含まれていない。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$notIn: ['Hello', 'Hola', 'Bonjour'],
},
},
});
$lt
属性が入力値より小さい。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
rating: {
$lt: 10,
},
},
});
$lte
属性が入力値以下。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
rating: {
$lte: 10,
},
},
});
$gt
属性が入力値より大きい。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
rating: {
$gt: 5,
},
},
});
$gte
属性が入力値以上。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
rating: {
$gte: 5,
},
},
});
$between
属性が2つの入力値の間にある、境界を含む(例えば、$between[1, 3]は1と3も返します)。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
rating: {
$between: [1, 20],
},
},
});
$contains
属性が入力値を含む(大文字小文字を区別)。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$contains: 'Hello',
},
},
});
$notContains
属性は入力値を含まない(大文字と小文字を区別します)。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$notContains: 'Hello',
},
},
});
$containsi
属性が入力値を含む。$containsiは大文字と小文字を区別しませんが、$containsは区別します。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$containsi: 'hello',
},
},
});
$notContainsi
属性は入力値を含まない。$notContainsiは大文字と小文字を区別しませんが、$notContainsは区別します。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$notContainsi: 'hello',
},
},
});
$startsWith
属性が入力値で始まる。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$startsWith: 'ABCD',
},
},
});
$endsWith
属性が入力値で終わる。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$endsWith: 'ABCD',
},
},
});
$null
属性がnullである。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$null: true,
},
},
});
$notNull
属性がnullでない。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: {
$notNull: true,
},
},
});
論理演算子
$and
すべてのネストされた条件がtrueでなければなりません。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
$and: [
{
title: 'Hello World',
},
{
createdAt: { $gt: '2021-11-17T14:28:25.843Z' },
},
],
},
});
ネストされた条件を持つオブジェクトを渡すときは、暗黙的に$andが使用されます:
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
title: 'Hello World',
createdAt: { $gt: '2021-11-17T14:28:25.843Z' },
},
});
$or
1つまたは複数のネストされた条件がtrueである必要があります。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
$or: [
{
title: 'Hello World',
},
{
createdAt: { $gt: '2021-11-17T14:28:25.843Z' },
},
],
},
});
$not
ネストされた条件を否定します。
例
const entries = await AI Marketer.documents('api::article.article').findMany({
filters: {
$not: {
title: 'Hello World',
},
},
});
✏️ Note
$notは次のように使用できます:
- 論理演算子(例:
filters: { $not: { // conditions… }}) - 属性演算子(例:
filters: { attribute-name: $not: { … } })。
💡 Tip
$and、$or、$notの演算子は、別の$and、$or、または$not演算子の中にネストすることができます。