4

我是sails.js 的新手。似乎sails.js 无法为选择表的某些字段/列进行SQL 查询。查询似乎都是“select *”。

4

4 回答 4

9

我刚刚找到了一种方法来实现这一点。我正在使用 Model.find 的第二个参数

Model.find({field: 'value'}, {fields: ['id', 'name']})

如果将字段设置为 false,它会模拟 SELECT *

Model.find({field: 'value'}, {fields: false})

一个完整的例子:

Model.find({field: 'value'}, {fields: ['id', 'name']})
    .paginate({page: 1}, {limit: 10)
    .exec(function(err, results) {
        if(err) {
            res.badRequest('reason');
        }
        res.jsonx(results);
    });
于 2014-10-30T18:42:45.537 回答
8

字段不再起作用,您必须改用 select。

Model.find({field: 'value'}, {select: ['id', 'name']})
  .paginate({page: 1}, {limit: 10})
  .exec(function(err, results) {
    if(err) {
      res.badRequest('reason');
    }
    res.json(results);
});
于 2015-06-22T16:53:59.460 回答
1

目前没有 WaterlineSELECT实现,但您可以使用Model.query(sqlQuery, callback)它在数据库上运行原始 SQL 查询。

例如:

User.query('SELECT email, username FROM users WHERE id = 10;', function (err, users) {
  // stuff
});
于 2013-11-30T13:33:38.737 回答
0

我使用sails 0.12,我的想法是:每当使用.populate 或.paginate(使用.find)时,都应该使用'select'。对于其他情况,应该使用'fields'

于 2016-08-23T13:56:25.873 回答