用例
我想创建一个复杂的查询与多个标准使用SailsJS"查找位置"蓝图路由。但是,我无法成功地使用 = 比较器和和条件。我找不到关于如何实现 find Where路由的足够的文档,所以我研究了源代码并提出了以下场景:
<标题>使用SailsJS Find Where蓝图路由,如何实现:
- 相等性比较
- 和条件
以下场景将返回适当的响应:
http://localhost:1337/api/user?name=fred
http://localhost:1337/api/user?where={"name":{"startsWith":"fred"}}
http://localhost:1337/api/user?where={"name":{"endsWith":"fred"}}
http://localhost:1337/api/user?where={"name":{"contains":"fred"}}
http://localhost:1337/api/user?where={"name":{"like":"fred"}}
http://localhost:1337/api/user?where={"or":[{"name":{"startsWith":"fred"}}]}
http://localhost:1337/api/user?where={"or":[{"name":{"startsWith":"fred"}},{"path":{"endsWith":"fred"}}]}
失败场景以下场景返回一个空响应:
http://localhost:1337/api/user?where={"name":{"equals":"fred"}}
http://localhost:1337/api/user?where={"name":{"=":"fred"}}
http://localhost:1337/api/user?where={"name":{"equal":"fred"}}
http://localhost:1337/api/user?where={"and":[{"name":{"startsWith":"fred"}}]}
http://localhost:1337/api/user?where={"and":[{"name":{"startsWith":"fred"}},{"path":{"endsWith":"fred"}}]}
标题>
要使用"one_answers"查询,您可以使用查询字符串语法和链标准,并使用&字符。对于更高级的查询,如OR
或复杂的操作符,最好编写一个控制器动作。如果你决定坚持使用蓝图,你可以使用大多数有效的水线查询编码为JSON。
对于简单的查询,使用查询字符串方法。下面的代码将为姓名和学校构建一个"and"查询。
http://localhost:1337/api/user?name=fred&school=foo
要将更高级的操作符链接在一起,应该使用以下操作符:
http://localhost:1337/api/user?where={"name":{"startsWith":"fred"},"path":{"endsWith":"fred"}}