繁体   English   中英

Adonis.js搜索查询

[英]Adonis.js search queries

我正在尝试找到一种使用AdonisJs执行搜索查询的方法,但是我找不到使用Lucid ORM执行此操作的任何方法...

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

let posts = yield Post.query().with('category').where({
   title: request.input('term')
}).forPage(1, 10).fetch()

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

SELECT id FROM posts WHERE content LIKE '%searchterm%' OR WHERE tags LIKE '%searchterm%' OR WHERE title LIKE '%searchterm%'

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

const postQuery = yield Database.schema.raw('SELECT * FROM posts');
const posts = postQuery.rows
console.log(posts);

编辑1
要使用Lucid ORM执行搜索查询:

const term = request.input('term');
yield Database.select('*').from('posts').where('title', 'LIKE', '%'+term+'%')
console.log(posts);

编辑2
更好的原始查询:

yield Database.select('*').from('posts').whereRaw('title @@ :term OR description @@ :term', {term: '%'+term+'%'})

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

const term = request.input('term');
const posts = await Post.query().where('title', 'LIKE', '%'+term+'%').fetch()
console.log(posts);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM