ネイティブ クエリ
データベースに対して、直接生の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バックエンドでSquid Service関数を使用してください。詳細については、データアクセスのセキュリティ設定に関するドキュメントを参照するをご覧ください。
ネイティブ MongoDB クエリ
executeNativeMongoQueryメソッドは、指定されたパラメータでネイティブMongoDB集約パイプラインを実行し、その結果を持つ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;
}