Waterline.js加入/填充现有数据库

时间:2016-06-10 07:59:37

标签: node.js database orm sails.js waterline

我有一个现有的postgres数据库,我用它来构建一个sails.js驱动的网站,利用水线进行O​​RM。

我可以将现有形式的数据库用于除人口以外的所有内容,即加入表格。

当使用非生产数据库时,我对waterline如何为我生成连接表感到满意,但我真的不确定如何绕过它以使用我当前的表及其外键关系。为了说明我通常会有的表格类型,我已经在下面展示了一个例子:

| Intel       |        |
|-------------|--------|
| Column      | Type   |
| id          | int PK |
| alliance_id | int FK |
| planet_id   | int FK |
| dist        | int    |
| bg          | string |
| amps        | int    |


| Alliance |        |
|----------|--------|
| Column   | Type   |
| id       | int PK |
| name     | string |
| score    | int    |
| value    | int    |
| size     | int    |


| Planet    |        |
|-----------|--------|
| Column    | Type   |
| id        | int PK |
| rulerName | string |
| score     | int    |
| value     | int    |
| size      | int    |

所以在上面的表格中,我通常可以加入英特尔 - >联盟和英特尔 - >行星并访问每个数据。

在我的英特尔,联盟,星球的水线模型中,我需要什么才能轻松访问?

我喜欢做:

Intel.find({alliance.name= 'test'})

Intel.find().populate('planet')

然后以某种方式能够访问intel.planet.score或intel.alliance.name等

感谢您的帮助。如果需要,我可以在评论中告诉我。

1 个答案:

答案 0 :(得分:0)

首先为所有数据库表创建模型,如提及here 您可以填充模型并返回联接结果