构建复杂 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);
});
玩得开心!
我正在使用 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);
});
玩得开心!