FeathersJs REST クライアントを使用して、複数の値を持つ単一のフィールドをクエリするにはどうすればよいですか?
例えば。Books サービスを利用していて、1990 年、1991 年、1992 年に書かれたすべての本を取得したい場合、次のように呼び出すとします。
/books?year[]=1990&year[]=1991&year[]=1992
これは機能しませんが。
FeathersJs REST クライアントを使用して、複数の値を持つ単一のフィールドをクエリするにはどうすればよいですか?
例えば。Books サービスを利用していて、1990 年、1991 年、1992 年に書かれたすべての本を取得したい場合、次のように呼び出すとします。
/books?year[]=1990&year[]=1991&year[]=1992
これは機能しませんが。
一般的なデータベース アダプタのクエリ構文のドキュメントを参照してください。探しているものを照会する正しい方法は次のとおりです。
year: {
$in: [ 1990, 1991, 1992 ]
}
対応するクエリは次のようになります
/books?year[$in]=1990&year[$in]=1991&year[$in]=1992
このクエリ文字列を解析するには、拡張クエリ パーサーqsを使用する必要があります。
app.set('query parser', 'extended');
クエリは文字列であるため、年の実際の数値が必要な場合は、それをbefore
フック内のクエリに変換する必要がある場合もあります (ただし、ほとんどのデータベースでは通常、両方が許可されています)。