マングース:クエリのパラメータがnullの場合は無視する

JesterWest

単純なRESTAPIがあり、特定のエンドポイントにフィルタリングを実装したいと思います。

次のようなエンドポイントがあると想像してください。

localhost:5000/api/items?color="red"

次のようなリクエストを処理します。

const items = await Items.find({color: req.query.color})

これcolorパラメーターが存在する場合に機能します。ただし、colorパラメータは項目のためのクエリ検索を省略しているところcolorですundefinedこれは私が必要とする振る舞いではありません。

私の場合、存在しない場合は無視される複数のフィルターパラメーターを追加したいと思いますケースごとに個別のクエリを作成する必要がありますか、それともフィールドcolorがnullまたは未定義の場合にフィールド(この場合を検索しないようにMongooseに指示するオプションはありますか?

dnp1204

'破壊的代入'を使用して、req.queryの変数を解凍できます

const { color } = req.query;
if(color) {
   const items = await Items.find({ color })
}

複数のフィルターがある場合は、上記の変数を使用できます。たとえばcolortypeパラメータあります。これにより、findメソッドに渡すオブジェクトを作成できます。

const { color, type } = req.query;
let query = {};
if(color) {
   query.color = color;
}
if(type) {
   query.type = type;
}
const items = await Items.find(query);

場合colorまたはtype元のクエリではないが、彼らはされ未定義またはfalsyので、そのパラメータのif文をスキップします。それがうまくいくことを願っています!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonリクエストがverifyパラメータを無視するのはなぜですか?

分類Dev

Redux-Observable-現在のパラメーターと同じパラメーターがある場合は次のリクエストをキャンセルしますが、パラメーターが異なる場合は実行します

分類Dev

パラメータバインディングの名前はnullまたは空であってはなりません!名前付きパラメーターの場合、Javaバージョンのクエリメソッドパラメーターには@Paramを使用する必要があります

分類Dev

Scalaでのパターンマッチング。パラメータがポリモーフィズムを示す場合、または子クラスである場合の動作は何ですか::

分類Dev

パラメータを無視するPaypalへのPOSTリクエスト

分類Dev

Ansibleタスクのエラーを無視し、タスクにエラーがあった場合はプレイブックの最後で失敗する

分類Dev

Ansibleタスクのエラーを無視し、タスクにエラーがあった場合はプレイブックの最後で失敗する

分類Dev

ワニスキャッシュで特定のクエリパラメータを無視する方法は?

分類Dev

GETリクエストはPythonリクエストのパラメータを無視します

分類Dev

API 19ではViewGroupのマージン/パディングは無視されます。プログラムで設定され、ビューがリサイクルされる場合にのみ機能します

分類Dev

SQL Serverパラメータがnullの場合、フィールドの検索を無視します

分類Dev

Instragram APIがリクエストのmin_idパラメーターを無視するのはなぜですか?

分類Dev

データベースフラグメントクエリエラー「クエリのパラメータは長さ0である必要があります」

分類Dev

Solrの生のクエリパラメータは無視されます

分類Dev

Spring DataJPAクエリでパラメータがnullの場合にAND条件を回避する方法

分類Dev

リストパラメータに複数の要素がある場合、Haskellはエラーを取得します

分類Dev

SQL クエリで Null パラメーターを無視する方法

分類Dev

クエリパラメータまたはルートパラメータが変更された場合にコンポーネントの再マウントを回避することは可能ですか?

分類Dev

エンドポイントが非常に類似している場合のパスパラメータとクエリパラメータ

分類Dev

「他のデータベースへのクエリを無視する」コマンドライン

分類Dev

「他のデータベースへのクエリを無視する」コマンドライン

分類Dev

eslintエラーを無視:「インポート」と「エクスポート」はトップレベルにのみ表示される場合があります

分類Dev

eslintエラーを無視:「インポート」と「エクスポート」はトップレベルにのみ表示される場合があります

分類Dev

RNGCryptoServiceProviderのコンストラクターがそのパラメーターを無視するのはなぜですか?

分類Dev

パターンが文字クラス内のスペースを無視するのはなぜですか

分類Dev

nullに設定されている場合、WHERE句のパラメータを無視します

分類Dev

次のマングースクエリの3番目のパラメータは何をしますか?

分類Dev

最初のパラメータを使用するエイリアスを作成する方法、またはパラメータが空白の場合は*?

分類Dev

ユーザーがテキストを入力した場合を無視するパラメータリクエストを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    Pythonリクエストがverifyパラメータを無視するのはなぜですか?

  2. 2

    Redux-Observable-現在のパラメーターと同じパラメーターがある場合は次のリクエストをキャンセルしますが、パラメーターが異なる場合は実行します

  3. 3

    パラメータバインディングの名前はnullまたは空であってはなりません!名前付きパラメーターの場合、Javaバージョンのクエリメソッドパラメーターには@Paramを使用する必要があります

  4. 4

    Scalaでのパターンマッチング。パラメータがポリモーフィズムを示す場合、または子クラスである場合の動作は何ですか::

  5. 5

    パラメータを無視するPaypalへのPOSTリクエスト

  6. 6

    Ansibleタスクのエラーを無視し、タスクにエラーがあった場合はプレイブックの最後で失敗する

  7. 7

    Ansibleタスクのエラーを無視し、タスクにエラーがあった場合はプレイブックの最後で失敗する

  8. 8

    ワニスキャッシュで特定のクエリパラメータを無視する方法は?

  9. 9

    GETリクエストはPythonリクエストのパラメータを無視します

  10. 10

    API 19ではViewGroupのマージン/パディングは無視されます。プログラムで設定され、ビューがリサイクルされる場合にのみ機能します

  11. 11

    SQL Serverパラメータがnullの場合、フィールドの検索を無視します

  12. 12

    Instragram APIがリクエストのmin_idパラメーターを無視するのはなぜですか?

  13. 13

    データベースフラグメントクエリエラー「クエリのパラメータは長さ0である必要があります」

  14. 14

    Solrの生のクエリパラメータは無視されます

  15. 15

    Spring DataJPAクエリでパラメータがnullの場合にAND条件を回避する方法

  16. 16

    リストパラメータに複数の要素がある場合、Haskellはエラーを取得します

  17. 17

    SQL クエリで Null パラメーターを無視する方法

  18. 18

    クエリパラメータまたはルートパラメータが変更された場合にコンポーネントの再マウントを回避することは可能ですか?

  19. 19

    エンドポイントが非常に類似している場合のパスパラメータとクエリパラメータ

  20. 20

    「他のデータベースへのクエリを無視する」コマンドライン

  21. 21

    「他のデータベースへのクエリを無視する」コマンドライン

  22. 22

    eslintエラーを無視:「インポート」と「エクスポート」はトップレベルにのみ表示される場合があります

  23. 23

    eslintエラーを無視:「インポート」と「エクスポート」はトップレベルにのみ表示される場合があります

  24. 24

    RNGCryptoServiceProviderのコンストラクターがそのパラメーターを無視するのはなぜですか?

  25. 25

    パターンが文字クラス内のスペースを無視するのはなぜですか

  26. 26

    nullに設定されている場合、WHERE句のパラメータを無視します

  27. 27

    次のマングースクエリの3番目のパラメータは何をしますか?

  28. 28

    最初のパラメータを使用するエイリアスを作成する方法、またはパラメータが空白の場合は*?

  29. 29

    ユーザーがテキストを入力した場合を無視するパラメータリクエストを取得するにはどうすればよいですか?

ホットタグ

アーカイブ