[英]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.