我已經堅持了很長一段時間。我想根據表單中的兩個輸入過濾 specials.name 欄位 - 選擇和輸入欄位。問題是,無論我嘗試什么,它總是選擇它。有什么辦法可以將 if, else 阻塞在 $ 或使其作業?
這是我嘗試的最后一件事,現在它始終在 searchInput(輸入欄位)上作業,它不會對選擇選單中的更改做出反應。
{
$match: {
$or: [
{ 'specials.name':{$in :[searchSpecials, searchInput]}},
]
}
}
const searchSpecials = req.body.searchSpecials
const searchInput = req.body.search
uj5u.com熱心網友回復:
如果兩個輸入是字串,則按預期作業:
db.collection.aggregate([
{
$match: {"specials.name": {$in: ["Malinda", "Joseph"]}}
}
])
并回傳:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"specials": {
"name": "Malinda"
}
},
{
"_id": ObjectId("5a934e000102030405000002"),
"specials": {
"name": "Joseph"
}
}
]
正如你在這里看到的,在操場上。不需要$or,因為$in它將回傳specials.name選項串列中包含的所有檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462454.html
