node.jsのルートでLIKE(正規表現)を使用してmongodbをクエリする方法は?

ペドロ

Iamはnode.jsを使用して、mongodbデータベースにクエリを実行するAPIを作成します。モンゴには、フィールド:タイムスタンプと値:2021-02-04T00:27:04.505-0300などがあります。

私のルートでは、その部分を含むすべてのエントリを取得したいだけです2021-02-04。ルートで正規表現を使用しようとしましたが、機能しません。

ルートクエリで正規表現を使用してmongodbをクエリするためのヒントを誰かに教えてもらえますか?param:diaは正規表現を実行したい場所であり、呼び出すURLは次のとおりです。

http://127.0.0.0.1:3400/vulns/severity/server01/2021-02-04/High

(そして、私はすべてを得ることを期待vulnsからserver01High日から重大度2021-02-04。)

私のルートコードは以下のとおりですが/req.params.dia/、正規表現のように認識されません。

router.get('/severity/:name/:dia/:sev', async (req, res) => {
  try {
    const logues = await vulnerability.find({'agent.name': req.params.name,'timestamp': /req.params.dia/,'data.vulnerability.severity': req.params.sev});
    res.json(logues)
  } catch (err) {
    res.status(500).json({ message: err.message })
  }
})

APIを使おうとすると、mongodbに次のクエリが表示されます。

[conn177] command XXX.vulnerabilities command: find { find: "vulnerabilities", filter: { agent.name: "server01", timestamp: /req.params.dia/, data.vulnerability.severity: "High" }, projection: {}, returnKey: false, showRecordId: false } planSummary: COLLSCAN keysExamined:0 docsExamined:6279 cursorExhausted:1 keyUpdates:0 writeConflicts:0 numYields:49 nreturned:0 reslen:128 locks:{ Global: { acquireCount: { r: 100 } }, Database: { acquireCount: { r: 50 } }, Collection: { acquireCount: { r: 50 } } } protocol:op_query 15ms
Peter Thoeny

timestampMongoDBのフィールドのタイプはDate型だと思いますたとえば、あなた2021-02-04T00:27:04.505-0300は単なる文字列表現です。その場合、範囲ごとに行われる日付を検索する必要があります。一日の範囲は、その日のゼロ秒から翌日のゼロ秒までです。

router.get('/severity/:name/:dia/:sev', async (req, res) => {
  let startDate = new Date(req.params.dia + 'T00:00:00Z'); // '021-02-04' becomes '021-02-04T00:00:00Z'
  let endDate = new Date(startDate.valueOf());
  endDate.setDate(endDate.getDate() + 1);
  try {
    const logues = await vulnerability.find({
        'agent.name': req.params.name,
        'timestamp': /req.params.dia/,
        timestamp: {
          $gte: startDate,
          $lt:  endDate
        }
        'data.vulnerability.severity': req.params.sev
    });
    res.json(logues)
  } catch (err) {
    res.status(500).json({ message: err.message })
  }
})

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

node.jsでリクエスト後のペイロードを読み取って表現する方法は?

分類Dev

変数を使用してnode.jsアプリで正規表現Mongo検索を実行する

分類Dev

Javascriptを使用してNode.jsのテキストコンテンツに対して複数の正規表現フィルターを実行します

分類Dev

Node.js正規表現は、これを実装する方法を後読みをサポートしていませんか?

分類Dev

Node.jsの正規表現で配列を分割する

分類Dev

Node.jsを使用してHTTPリクエストでJavaScript名をフォローする方法は?

分類Dev

Node.jsを使用してサーバー側でSRRのvue-routerに現在のリクエストルートを設定します

分類Dev

Node.jsでhtpasswdを使用してリクエストを認証する方法

分類Dev

node.jsのリクエストを使用してマルチパートformDataでオブジェクトを送信する方法

分類Dev

node.jsは「net」サーバーからhttpリクエストを転送して表現します

分類Dev

node.jsを使用してmysqlで多数のクエリを作成する方法

分類Dev

node.jsを使用してmongodbからエントリを取得する方法

分類Dev

リクエスト モジュール -Node js を使用して、URL からのリクエストのドメイン名を抽出する方法

分類Dev

node.jsのXMLデータを使用してPOSTリクエストを送信する:エラー400、「クライアントから送信されたリクエストは構文的に正しくありませんでした」

分類Dev

Node.jsでpgを使用してPostgresqlデータベースを適切にクエリする方法は?

分類Dev

Node.jsで、async / awaitを使用してエラーを処理する正しい方法は何ですか?

分類Dev

正規表現はnode.jsで私を困惑させます

分類Dev

node.jsを使用してデータベースからのクエリ結果をHTMLで表示する方法

分類Dev

Expressを使用してMongoDBサーバーにクエリを実行する(Node.jsプロジェクト)

分類Dev

Node.jsでクラスをエクスポートする正しい方法

分類Dev

node.jsでルートをエクスポートしてExpressする方法は?

分類Dev

Node.jsを使用してhttp(s)リクエストをLocalTunnelでホストされているNode.jsサーバーに送信する方法

分類Dev

typescript node + expressプロジェクトのモジュールからtypescriptファイルを使用する正しい方法は?現在スローしているエラー:モジュールが見つかりません

分類Dev

Node.jsとMongoDBはクエリを正規化できません

分類Dev

node.jsで非同期リクエストのループが終了するのを待つ方法は?

分類Dev

mongooseを使用してnode.jsをMongoDBのシャードレプリカクラスターに接続する正しい方法

分類Dev

Node.jsを介してmongoDBシェルスクリプトを実行する方法は?

分類Dev

Node.jsでSequelizeを使用して結合クエリを作成する方法

分類Dev

Node.jsを使用してAzureCosmosDBでSQLクエリを実行する方法

Related 関連記事

  1. 1

    node.jsでリクエスト後のペイロードを読み取って表現する方法は?

  2. 2

    変数を使用してnode.jsアプリで正規表現Mongo検索を実行する

  3. 3

    Javascriptを使用してNode.jsのテキストコンテンツに対して複数の正規表現フィルターを実行します

  4. 4

    Node.js正規表現は、これを実装する方法を後読みをサポートしていませんか?

  5. 5

    Node.jsの正規表現で配列を分割する

  6. 6

    Node.jsを使用してHTTPリクエストでJavaScript名をフォローする方法は?

  7. 7

    Node.jsを使用してサーバー側でSRRのvue-routerに現在のリクエストルートを設定します

  8. 8

    Node.jsでhtpasswdを使用してリクエストを認証する方法

  9. 9

    node.jsのリクエストを使用してマルチパートformDataでオブジェクトを送信する方法

  10. 10

    node.jsは「net」サーバーからhttpリクエストを転送して表現します

  11. 11

    node.jsを使用してmysqlで多数のクエリを作成する方法

  12. 12

    node.jsを使用してmongodbからエントリを取得する方法

  13. 13

    リクエスト モジュール -Node js を使用して、URL からのリクエストのドメイン名を抽出する方法

  14. 14

    node.jsのXMLデータを使用してPOSTリクエストを送信する:エラー400、「クライアントから送信されたリクエストは構文的に正しくありませんでした」

  15. 15

    Node.jsでpgを使用してPostgresqlデータベースを適切にクエリする方法は?

  16. 16

    Node.jsで、async / awaitを使用してエラーを処理する正しい方法は何ですか?

  17. 17

    正規表現はnode.jsで私を困惑させます

  18. 18

    node.jsを使用してデータベースからのクエリ結果をHTMLで表示する方法

  19. 19

    Expressを使用してMongoDBサーバーにクエリを実行する(Node.jsプロジェクト)

  20. 20

    Node.jsでクラスをエクスポートする正しい方法

  21. 21

    node.jsでルートをエクスポートしてExpressする方法は?

  22. 22

    Node.jsを使用してhttp(s)リクエストをLocalTunnelでホストされているNode.jsサーバーに送信する方法

  23. 23

    typescript node + expressプロジェクトのモジュールからtypescriptファイルを使用する正しい方法は?現在スローしているエラー:モジュールが見つかりません

  24. 24

    Node.jsとMongoDBはクエリを正規化できません

  25. 25

    node.jsで非同期リクエストのループが終了するのを待つ方法は?

  26. 26

    mongooseを使用してnode.jsをMongoDBのシャードレプリカクラスターに接続する正しい方法

  27. 27

    Node.jsを介してmongoDBシェルスクリプトを実行する方法は?

  28. 28

    Node.jsでSequelizeを使用して結合クエリを作成する方法

  29. 29

    Node.jsを使用してAzureCosmosDBでSQLクエリを実行する方法

ホットタグ

アーカイブ