Bookshelf.js使用rand()随机排序项目

时间:2017-07-17 20:37:34

标签: mysql knex.js bookshelf.js

我使用bookshelf.js使用mariaDB开发项目。我想随机订购我的邮件。我发现这个解决方案适用于knex.js

knex('posts').select('id', 'text')
            .orderByRaw('RAND()')
            .limit(100)

但我想用Bookshelf做同样的事情。

2 个答案:

答案 0 :(得分:3)

根据bookshelf.js文档,model.query()返回您可以将knex解决方案应用于的基础knex查询构建器。

Post.query(function (qb) {
            qb.select('id',  'text');
            qb.orderByRaw('RAND()')
            qb.limit(2);
        }).fetchAll()

答案 1 :(得分:0)

也许这个答案对某人会有帮助:

//with where 
    let val = await Question.where({'test_id': id}).query(function (qb) {
                qb.limit(1);//with limit
                qb.orderByRaw('RAND()')//with rand
            }).fetchAll({
                withRelated: ['answers', 'comments'], require: true
            });