Skip to main content

Document Service API: フィルター

Document Service APIは、結果をフィルタリングする機能を提供します。

以下の演算子が利用可能です:

演算子説明
$eq等しい
$eqi等しい(大文字・小文字を区別しない)
$ne等しくない
$nei等しくない(大文字・小文字を区別しない)
$ltより小さい
$lte以下
$gtより大きい
$gte以上
$in配列に含まれる
$notIn配列に含まれない
$contains含む
$notContains含まない
$containsi含む(大文字・小文字を区別しない)
$notContainsi含まない(大文字・小文字を区別しない)
$nullnullである
$notNullnullでない
$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]13も返します)。

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演算子の中にネストすることができます。