2017-05-25 119 views
0

我試圖找到一種方法使用adonis.js執行搜索查詢,但我無法找到任何方式清醒ORM做到這一點...Adonis.js搜索查詢

我目前使用此,但它顯然不是做一個搜索查詢的正確方法:

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%' 

預先感謝您

+0

什麼是使用所有那些花哨ORM-S,並在同一時間尋找原始查詢執行的呢? –

回答

2

找到了解決方案,直接在阿多尼斯與Database.schema.raw(execute queries here)執行SQL查詢,所以:

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

編輯1
要以清醒的執行搜索查詢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+'%'})