【问题标题】:Build complex Model.find request构建复杂的 Model.find 请求
【发布时间】:2023-04-06 02:59:01
【问题描述】:

我正在使用 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 构建“复杂”请求的语法,让我得到与原始 sql 完全相同的结果,并且还可以执行类似

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

【问题讨论】:

    标签: node.js express sails.js waterline


    【解决方案1】:

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

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

    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);
            });
    

    使用 Sails.js 语法在 mysql 状态下发送 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);
                });
    

    玩得开心!

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2015-10-13
      • 2015-09-16
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多