我正在嘗試找到這樣的特定專案:
Product.find({ category: "bracelet" });
但在一種情況下,我需要將像手鐲這樣的值放在類別??中,或者基本上說任何這樣的類別:
let cat;
if (req.body.cat) {
cat = req.body.cat;
} else {
cat = "";
}
let products;
try {
products = await Product.find({ category: cat });
} catch (e) {
return next(e);
}
所以我放了一個空字串來查找所有專案,無論它們具有什么類別欄位值,但它不起作用并回傳一個空陣列。
我怎樣才能實作這種行為,即請求正文搜索中是否有 cat 欄位,否則搜索所有專案,無論它們具有什么類別欄位值?
uj5u.com熱心網友回復:
let cat;
if (req.body.cat) {
cat = req.body.cat;
} else {
cat = {$regex:".*."};
}
let products;
try {
products = await Product.find({ category: cat });
} catch (e) {
return next(e);
}
uj5u.com熱心網友回復:
我用一個技巧解決了這個問題,說 find all that have category field or category field exist :
let cat;
if (req.body.cat) {
cat = req.body.cat;
} else {
cat = { $exists: true };
}
這樣,它將從請求正文中搜索類別(如果包含),如果不包含,它將獲取所有具有類別欄位的專案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350370.html
標籤:javascript 节点.js 数据库 MongoDB 表达
