node.js - 构建复杂的 Model.find 请求

标签 node.js express sails.js waterline

我正在使用 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}
]

最佳答案

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

所以目标是转换此请求:

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

玩得开心!

关于node.js - 构建复杂的 Model.find 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32458796/

相关文章:

node.js - Node.js 中的 Firebase Admin SDK 全局应用初始化

node.js - 如何根据路由将 CSS 和 JS 加载到 Sails.js 布局中?

mysql - 带有 sails-mysql 的水线 BIGINT 类型

javascript - Sails.js 获得多对多关联计数

javascript - 基准异步代码 (Benchmark.js, Node.js)

javascript - 查询为空 Node Js Sequelize

node.js - 如何在 azure 网站上将私有(private) git 存储库作为包加载?

向我的 Node 服务器发送 AJAX 请求 - 未通过

node.js - 如何让 Stylus 与 CoffeeScript 中的 Express 和 Connect 一起工作

node.js - 优雅地处理 Node Js 中的异常