簡體   English   中英

如何在 mongodb 中合並兩個查詢?

[英]How can I merge two queries in mongodb?

為了對 Ads Collection 中的文檔進行排序,我使用了以下查詢,該查詢從 URL 中獲取參數並且它完美地工作。

router.get("/", auth, async (req, res) => {
  let query;

  let queryStr = JSON.stringify(req.query);

  queryStr = queryStr.replace(
    /\b(gt|gte|lt|lte|in)\b/g,
    (match) => `$${match}`
  );

  console.log(queryStr);

  query = Ads.find(JSON.parse(queryStr));
  const ads = await query;


  res.status(200).json({ data: ads });
});

我正在使用 Ads Collection 中的文本運算符通過以下路徑進行搜索。

router.get("/find/:query", (req, res) => {
  let query = req.params.query;
  
  Ads.find(
    {
      $text: { $search: query },
    },
    function (err, result) {
      if (err) throw err;
      if (result) {
        res.json(result);
      } else {
        res.send(
          JSON.stringify({
            error: "Error",
          })
        );
      }
    }
  );
});

兩條路線都運行良好,但如何將上述兩條路線合二為一?

例如,我想在獲得響應后對第一條路由進行文本搜索,對於第二條路由類似,在獲得響應后我想應用查詢參數並獲得響應。

如何合並上述兩個以獲得所需的輸出?

據我所知,您是否正在尋找可以並行運行兩者的管道:

請查看作為管道工作的 MongoDB 聚合。 在這里,您可以為相同的輸入設置兩個管道並具有不同的輸出,或者可以將其中一個的輸出傳輸到下一級進行處理。

Mongodb 聚合 - Facet 命令鏈接 [1]: https ://docs.mongodb.com/manual/reference/operator/aggregation/facet/#pipe._S_facet

Mongodb 聚合鏈接
[2]: https : //docs.mongodb.com/manual/reference/operator/query/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM