如何从 Sails JS Waterline 集合中获取指定字段的列表?

How can I get a list of a specified field from a Sails JS Waterline collection?

我有一个 MySQL table 和 url 列,我想获得 table 中每个 url 值的列表。结构:

在 PHP 中使用 Laravel 我可以做这样的事情来获取每个 url 列值的数组:

$boards = Board::all()->lists('url');

但是,我不知道如何使用 Sails JS 执行此操作。我注意到没有任何参数的 find() 获取数据库中的每一行,但我在文档中找不到任何内容可以让我获取 url 列的值列表或某种方式迭代返回的集合。

我试过这个:

var boards = Board.find().exec(function(error, _boards) {
  if(error)
  {
    return response.negotiate(error);
  }

  return _boards;
});

但是,我实际上似乎无法迭代返回的数据。

有什么想法吗?

编辑:

完整 HomepageController.js:

module.exports = {
  index: function (request, response) {
    var data = {
      currentDate: (new Date()).toString(),
      boards: Board.query('SELECT url FROM board', function (error, results) {
        if (error) {
          return response.negotiate(error);
        }

        return results;
      })
    };

    return response.view('homepage', data);
  }
};

编辑:工作代码:

module.exports = {
  index: function (request, response) {
    Board.query('SELECT url FROM board', function(error, results) {
      if(error)
      {
        return response.negotiate(error);
      }

      return response.view('homepage', { currentDate: (new Date()).toString(), boards: results });
    });
  }
};

您可以使用原始 .query() 到 select 单独的列:

Board.query('SELECT url FROM board', function (err, results) { ... });

但是,请记住,您的数据仍将如下所示:

[{url: 'row 1 value'}, {url: 'row 2 value'}, ...]