クエリマッピング
本製品 は、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} エンドポイントに送信されます。