コンテンツにスキップ

複雑なレコードのサブスクリプション

次の例では、idfirstNameemailage などのフィールドとリレーションを含む students というテーブルがあります。

フィルターを使用したサブスクリプション

Section titled “フィルターを使用したサブスクリプション”

Archie Core の自動生成された GraphQL サブスクリプション操作を使用して、作成、更新、および削除される個々のレコードおよび関連レコードをサブスクライブできます。

演算子使用例
eqstatus = "active"
neqtype != "admin"
gtage > 18
ltprice < 100
gtescore >= 80
lteattempts <= 3
containsname contains "john"
startsWithemail startsWith "admin"
endsWithdomain endsWith ".com"
mutation createNewSubscription($input: SubscriptionInput!) {
system {
createSubscription(input: $input) {
id
active
name
}
}
}
{
"input": {
"name": "students_create_gte_lte",
"description": "Subscription - students table - create - gte lte",
"active": true,
"tables": [
{
"table": "students",
"operations": ["CREATE"],
"fields": ["id", "first_name", "email", "age"],
"conditions": [
{
"field": "age",
"operator": "GTE",
"value": "25"
},
{
"field": "age",
"operator": "LTE",
"value": "50"
}
]
}
]
}
}
{
"data": {
"system": {
"createSubscription": {
"id": "id_subscription",
"active": true,
"name": "students_create_gte_lte"
}
}
}
}
mutation createNewSubscription($input: SubscriptionInput!) {
system {
createSubscription(input: $input) {
id
active
name
}
}
}
{
"input": {
"name": "multiple_tables",
"description": "Subscription multiple tables",
"active": true,
"tables": [
{
"table": "students",
"operations": ["CREATE"],
"fields": ["id", "first_name", "email", "age"],
"conditions": [
{
"field": "age",
"operator": "GTE",
"value": "30"
},
{
"field": "age",
"operator": "LTE",
"value": "60"
}
]
},
{
"table": "courses",
"operations": ["UPDATE"],
"fields": ["id", "code", "name_course", "price"],
"conditions": [
{
"field": "price",
"operator": "LTE",
"value": "500"
}
]
}
]
}
}
{
"data": {
"system": {
"createSubscription": {
"id": "id_subscription",
"active": true,
"name": "multiple_tables"
}
}
}
}