请帮我解决。 我正在进行搜索功能。以下是我的代码和用户故事。我只能通过第一个用户故事,而不能通过其他故事。有人能帮助我吗?如何使用搜索功能
用户故事:
作为一个用户,如果我搜索的技能和位置我应该得到与查询相匹配的结果。
作为一个用户,如果我只搜索技能,我仍然应该得到与查询相匹配的结果。
作为一个用户,如果我只用位置搜索,我应该得到与查询匹配的结果。
仿佛我与无效的技能(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