Sails原始查询填充

时间:2018-02-25 11:26:35

标签: node.js sails.js populate

var Promise = require('bluebird');
var userQueryAsync = Promise.promisify(Article.query);
userQueryAsync("SELECT article.slug, article.title, __user.name AS user___name, __user.phone AS user___phone FROM article JOIN user AS __user ON __user.id = article.user")
  .then(function(article) {
    var parsed = new Article._model(article);
    console.log(parsed);
});

由于Sails中的原始查询,我想创建模型对象。

我使用上面代码检索的数据是:

{ '0':
  { 
    slug: 'article-1',
    title: 'Article 1',
    user: 1,
    user___name: 'Cainzer',
    user___phone: '0000000' 
  } 
}

我希望:

{ '0':
  { 
    slug: 'article-1',
    title: 'Article 1',
    user: {
      name: 'Cainzer',
      phone: '0000000' 
    }
  } 
}

有没有办法在没有循环的情况下完成?

我知道我可以使用Article.find()。populate(" user")轻松完成,但我向您展示了一个简单的示例,使其工作并在更棘手的情况。 我被迫使用原始查询,因为Waterline在使用MySQL的populate()中没有实现WHERE子句。

0 个答案:

没有答案