构建复杂 Model.find 请求

Build complex Model.find request

我正在使用 Sails.js

构建一个 API

目前我正在执行原始 sql 请求以查找状态列表:

        Status.query("SELECT Status.* FROM Status,User where Status.user = User.id and User.isPrivate = false group by status.id  order by status.id desc limit "+limit+" offset "+offset, function(err, status) {
            if(err) return next(err);


            console.log(status)
            console.log(res)
            res.json(200,status);
        });

2 个问题:

1- 它是原始的 SQL 所以我将无法切换到 Mango 或其他任何东西,因为我的代码链接到我的数据库选择 2- Model.find 自动加载关系(这里 Status.user 和 Status.find)和原始 sql 只加载 ID

2- 我正在寻找使用 Model.Find 构建 'complex' 请求的语法,让我得到与原始 sql 完全相同的结果,并且还可以做 [= =13=]

AND:
[
    {
    or:
        [ 
            {a=1,b=2},
            {a=2,b=1}
        ]
    },
    {c=6}
]

好的,我成功地找到了怎么做!

所以目标是转换这个请求:

Status.query("SELECT Status.* FROM Status,User where Status.user = User.id and User.isPrivate = false group by status.id  order by status.id desc limit "+limit+" offset "+offset, function(err, status) {
            if(err) return next(err);


            console.log(status)
            console.log(res)
            res.json(200,status);
        });

在 mysql 状态下使用 Sails.js 语法的 Model.find 请求。给你:(没有分页但很容易找到怎么做)

Status.find({}).populate('user',{isPrivate:'false'}).exec(function(status,err){
                if(err) return next(err);


                console.log(status)
                console.log(res)
                res.json(200,status);
            });

玩得开心!