ネイティブクエリ
データベースに対して生のSQLやその他のデータベース固有のクエリを直接実行します。
ネイティブクエリは、Squid Client SDKだけでは容易に実現できない操作を行う場合に有用です。Client SDKは強力なクエリ機能を備えていますが、これらの機能を拡張する必要があるかもしれません。
例えば、一部のSQLクエリはNoSQL向けには利用できない(サブセレクトや複雑なジョインなど)ため、SDKでは利用できません。また、他のデータベースにはない固有の機能を持つデータベースの場合、その機能はコードベースに含まれていないこともあります。
Client SDKのクエリ機能を拡張する必要がある場合は、ネイティブクエリを使用できます。
ネイティブリレーショナルクエリ
SQLデータベースコネクタを使用している場合は、データベースのコネクタIDとSQLクエリを渡すことで、executeNativeRelationalQueryメソッドを使って生の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アグリゲーションパイプラインを実行するものです:
Client code
async function countDocuments(): Promise<any> {
const response = await this.squid.executeNativeMongoQuery('DATABASE_CONNECTOR_ID', 'COLLECTION_NAME', [{ $count: 'totalApplications' }]);
return response;
}