ネイティブクエリ
生のSQLやその他のデータベース固有のクエリを、データベースに対して直接実行します。
ネイティブクエリは、Squid Client SDK だけでは簡単に実現できない操作を行う必要がある場合に便利です。Client SDK には強力なクエリ機能がありますが、これらの機能を拡張する必要がある場合があります。
たとえば、一部の SQL クエリは NoSQL では利用できない(サブセレクトや複雑な結合など)ため、SDK でも利用できません。あるいは、データベースに他のデータベースにはない固有の機能がある場合もありますが、それらもコードベースには含まれません。
Client SDK クエリの機能を拡張する必要がある場合は、ネイティブクエリを使用できます。
ネイティブリレーショナルクエリ
SQL データベースコネクタを使用している場合、executeNativeRelationalQuery メソッドを使って生の SQL を実行できます。データベースのコネクタ ID と SQL クエリを渡します。
次の例は、ネイティブ SQL クエリを実行します。
Client code
async function runNativeQuery(queryParam: string): Promise<any> {
const response = await this.squid.executeNativeRelationalQuery('DATABASE_CONNECTOR_ID', 'SELECT * FROM SQUIDS WHERE YEAR = ${year}', { year: queryParam });
return response;
}
ネイティブクエリを安全にするには、Squid backend の Squid Service 関数を使用してください。詳しくは、データアクセスのセキュア化に関するドキュメント を参照してください。
ネイティブ MongoDB クエリ
executeNativeMongoQuery メソッドは、指定したパラメータでネイティブ MongoDB aggregation pipeline を実行し、結果を含む promise を返します。
次の例は、Mongo aggregation pipeline を実行します。
Client code
async function countDocuments(): Promise<any> {
const response = await this.squid.executeNativeMongoQuery('DATABASE_CONNECTOR_ID', 'COLLECTION_NAME', [{ $count: 'totalApplications' }]);
return response;
}