Sails.js 如何使用join连接sails中的两个表

Sails.js 如何使用join连接sails中的两个表,sails.js,Sails.js,我知道,在sails中,我可以使用populate连接两个模型,如本链接中描述的 例如,我有两个模型: // myApp/api/models/Pet.js module.exports = { attributes: { name: { type: 'string' }, color: { type: 'string' } } } 及 然后 将返回如下结果 [{ name: 'Mike', age: 21, po

我知道,在sails中,我可以使用populate连接两个模型,如本链接中描述的 例如,我有两个模型:

// myApp/api/models/Pet.js
module.exports = {
  attributes: {
    name: {
      type: 'string'
    },
    color: {
      type: 'string'
    }
  }
}

然后

将返回如下结果

 [{ 
  name: 'Mike',
  age: 21,
  pony: { 
    name: 'Pinkie Pie',
    color: 'pink',
    id: 5,
    createdAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
    updatedAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST) 
  },
  createdAt: Tue Feb 11 2014 15:48:53 GMT-0600 (CST),
  updatedAt: Tue Feb 11 2014 15:48:53 GMT-0600 (CST),
  id: 1 
 }]
在这里,小马是一个物体,我不喜欢它。我想返回如下结果:

[{
    name: 'Mike',
    age: 21,
    name: 'Pinkie Pie',
    color: 'pink',
    id: 5,
    createdAt: Tue Feb 11 2014 15:45:33 GMT - 0600 (CST),
    updatedAt: Tue Feb 11 2014 15:45:33 GMT - 0600 (CST)
    createdAt: Tue Feb 11 2014 15:48:53 GMT - 0600 (CST),
    updatedAt: Tue Feb 11 2014 15:48:53 GMT - 0600 (CST),
    id: 1
}]

(它们都是财产)。所以我想我需要加入这个案子。我怎样才能加入?

这个问题已经讨论过了。答案演示了如何在Sails中为NoSQL DB使用.populate(),在SQL DB中使用.query()


如果您使用的是类似MySQL的SQL DB,并且这是一个经常运行的查询,那么另一个选项是在DB级别创建视图。您可以在中找到有关创建视图的详细信息。

此问题已经讨论过。答案演示了如何在Sails中为NoSQL DB使用.populate(),在SQL DB中使用.query()


如果您使用的是类似MySQL的SQL DB,并且这是一个经常运行的查询,那么另一个选项是在DB级别创建视图。您可以在中找到有关创建视图的详细信息。

您的预期结果对象具有重复的键。这应该是JSON对象还是JSON?当您的预期结果对象具有重复的键时,我将重命名它。这应该是一个JS对象还是JSON?@Sangarsh我会在Join时重命名它我想我会创建视图是的,这是一个很好的选择,然后你可以在sails中为DB视图创建一个模型,不再嵌套JSON。我想我会创建视图是的,这是一个很好的选择,然后,您可以在sails中为DB视图创建一个模型,不再需要嵌套JSON。
 [{ 
  name: 'Mike',
  age: 21,
  pony: { 
    name: 'Pinkie Pie',
    color: 'pink',
    id: 5,
    createdAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST),
    updatedAt: Tue Feb 11 2014 15:45:33 GMT-0600 (CST) 
  },
  createdAt: Tue Feb 11 2014 15:48:53 GMT-0600 (CST),
  updatedAt: Tue Feb 11 2014 15:48:53 GMT-0600 (CST),
  id: 1 
 }]
[{
    name: 'Mike',
    age: 21,
    name: 'Pinkie Pie',
    color: 'pink',
    id: 5,
    createdAt: Tue Feb 11 2014 15:45:33 GMT - 0600 (CST),
    updatedAt: Tue Feb 11 2014 15:45:33 GMT - 0600 (CST)
    createdAt: Tue Feb 11 2014 15:48:53 GMT - 0600 (CST),
    updatedAt: Tue Feb 11 2014 15:48:53 GMT - 0600 (CST),
    id: 1
}]