【发布时间】:2017-04-06 11:10:37
【问题描述】:
请帮帮我。 我正在制作搜索功能。以下是我的代码和用户故事。我只能通过第一个用户故事,但不能通过其他故事。谁能帮帮我。
用户故事:
作为用户,如果我使用技能和位置进行搜索,我应该得到与查询匹配的结果。
作为用户,如果我只使用技能进行搜索,我应该得到与查询匹配的结果。
作为用户,如果我只使用 Location 进行搜索,我应该得到与查询匹配的结果。
-
作为用户,如果我使用无效的技能(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 个故事也应该可以工作..
-
用户故事 1 和 4 要求
state和skill匹配,而用户故事 2 和 3 匹配state或skill。如果我的理解是正确的,那么您在这里有两个选择。简单的选项是编写不同的 mongo 查询并根据搜索查询运行适当的查询。第二种选择是根据搜索查询构建动态 mongo 查询。第一个选项很简单,但它需要多个 mongo 查询,而第二个选项更难,但允许您在一个查询中管理所有内容。 -
用户故事 4 必须失败,因为它是无效的输入权限。如果用户输入单个字符并开始搜索,那么它不应该给出结果,它一定会失败。正如你所说的用户故事 2 和 3 第二个选项,你能简要解释一下如何做吗?
标签: node.js mongodb express mean-stack