クエリマッピング
本製品 は、SQL クエリを対応するCloudant クエリにマッピングします。本製品 はSelector 構文を使用して結果を計算します。
ここではトランスフォーメーションの詳細は説明しませんが、いくつか代表的なものを説明します。
SELECT クエリ
SELECT ステートメントはGET およびPOST メソッドにマッピングされます。以下は、クエリ例と対応するリクエストペイロードです。
| SQL クエリ | Cloudant クエリ |
SELECT * FROM sales |
このクエリでは、GET リクエストが/_all_docs エンドポイントに送信されます。 |
SELECT _id, value FROM sales | {
"fields": [
"_id",
"value"
],
"skip": 0,
"selector": {
"_id": {
"$exists": true
}
}
} |
SELECT * FROM sales WHERE value=175033291697 | {
"selector": {
"value": {
"$eq": 175033291697
}
},
"skip": 0
} |
SELECT * FROM sales WHERE value = 175033291697 OR month='June' | {
"selector": {
"$or": [
{
"value": {
"$eq": 175033291697
}
},
{
"month": {
"$eq": "June"
}
}
]
},
"skip": 0
} |
SELECT * FROM sales WHERE name LIKE 'A%' | {
"selector": {
"name": {
"$regex": "A%"
}
},
"skip": 0
} |
SELECT * FROM sales WHERE month='June' ORDER BY _id ASC | {
"skip": 0,
"sort": [
{
"_id": "asc"
}
],
"selector": {
"month": {
"$eq": "June"
}
}
} |
SELECT * FROM sales WHERE month='June' ORDER BY _id DESC | {
"skip": 0,
"sort": [
{
"_id": "desc"
}
],
"selector": {
"month": {
"$eq": "June"
}
}
} |
INSERT ステートメント
INSERT ステートメントは、次のクエリおよびリクエストペイロードで示されるようにHTTP POST リクエストにマッピングされます。
SQL クエリ
INSERT INTO users (_id, age, status, [address.city], [address.postalcode])
VALUES ('bcd001', 45, 'A', 'Chapel Hill', 27517)
Cloudant クエリ
{
"address": {
"city": "Chapel Hill",
"postalcode": 27517
},
"_id": "bcd001",
"age": 45,
"status": "A"
}
UPDATE ステートメント
UPDATE ステートメントは、次のクエリおよびリクエストペイロードで示されるようにHTTP PUT メソッドにマッピングされます。
SQL クエリ
UPDATE users SET status = 'C', [address.postalcode] = 90210 WHERE _id = 'bcd001'
Cloudant クエリ
{
"_id": "bcd001",
"_rev": "1-446f6c67e3a483feae8eaf112f18892c",
"status": "C",
"age": 45,
"address": {
"city": "Chapel Hill",
"postalcode": 90210
}
}
DELETE ステートメント
DELETE ステートメントは、次のようにDELETE メソッドとしてマッピングされます。
SQL クエリ
DELETE FROM users WHERE _id = 'bcd001'
Cloudant クエリ
このクエリでは、DELETE リクエストがusers/{_id}?rev={_rev} エンドポイントに送信されます。