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