請幫我解決。 我正在進行搜索功能。以下是我的代碼和用戶故事。我只能通過第一個用戶故事,而不能通過其他故事。有人能幫助我嗎?如何使用搜索功能
用戶故事:
作爲一個用戶,如果我搜索的技能和位置我應該得到與查詢相匹配的結果。
作爲一個用戶,如果我只搜索技能,我仍然應該得到與查詢相匹配的結果。
作爲一個用戶,如果我只用位置搜索,我應該得到與查詢匹配的結果。
彷彿我與無效的技能(J,A,B)或位置我不應該得到這不符合查詢結果的搜索用戶..
var search = { get: function (req, res) { var locationQuery = req.params.locationQuery, skillsQuery = req.params.skillsQuery; Jobs.find({state: { "$regex": locationQuery, "$options": "i" }, Skills: { "$regex": skillsQuery, "$options": "i" }}, function(err, result) { if (err) { console.log('Not a Valid Search'); res.status(500).send(err, 'Not a Valid Search'); }else { res.json(result); } }); } };
即使是第4個故事也應該工作.. – sidgate
用戶故事1和4需要'state'和'skill'匹配,而用戶故事2和3匹配'state'或'skill'。如果我的理解是正確的,那麼你在這裏有兩個選擇。簡單的選擇是編寫差異mongo查詢並根據搜索查詢運行適當的查詢。第二種選擇是根據搜索查詢建立動態mongo查詢。第一個選項很簡單,但它需要多個mongo查詢,而第二個選項比較困難,但允許您在單個查詢中管理所有內容。 –
用戶故事4必須失敗,因爲它是無效的輸入權限。如果用戶輸入單個字符並開始搜索,那麼它不應該給出結果,它必須失敗。正如你所說的用戶故事2和3的第二個選項,你能簡單地解釋一下怎麼做? – Arjun