首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adonis.js搜索查询

Adonis.js搜索查询
EN

Stack Overflow用户
提问于 2017-05-25 16:48:58
回答 2查看 11.1K关注 0票数 4

我试图找到一种使用AdonisJs执行搜索查询的方法,但我无法找到用Lucid进行搜索查询的任何方法。

我目前正在使用这个工具,但这显然不是进行搜索查询的正确方法:

代码语言:javascript
复制
let posts = yield Post.query().with('category').where({
   title: request.input('term')
}).forPage(1, 10).fetch()

如何使用adonis.js框架直接执行postgres查询?

代码语言:javascript
复制
SELECT id FROM posts WHERE content LIKE '%searchterm%' OR WHERE tags LIKE '%searchterm%' OR WHERE title LIKE '%searchterm%'
EN

回答 2

Stack Overflow用户

发布于 2017-05-26 16:01:14

找到了用Database.schema.raw(execute queries here)在Adonis中直接执行SQL查询的解决方案,因此:

代码语言:javascript
复制
const postQuery = yield Database.schema.raw('SELECT * FROM posts');
const posts = postQuery.rows
console.log(posts);

编辑1

若要使用Lucid执行搜索查询,请执行以下操作:

代码语言:javascript
复制
const term = request.input('term');
yield Database.select('*').from('posts').where('title', 'LIKE', '%'+term+'%')
console.log(posts);

编辑2

更好的原始查询:

代码语言:javascript
复制
yield Database.select('*').from('posts').whereRaw('title @@ :term OR description @@ :term', {term: '%'+term+'%'})
票数 6
EN

Stack Overflow用户

发布于 2019-03-05 07:25:33

假设您有一个名为Post.You的模型,则可以使用以下查询。

代码语言:javascript
复制
const term = request.input('term');
const posts = await Post.query().where('title', 'LIKE', '%'+term+'%').fetch()
console.log(posts);

如果要选择所有属性,则不需要使用 select ()希望它将对您有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44185803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档