2
在MVC人們使用連接查詢來加入兩個不同的表,但在sails.js我必須使用?水線有什麼方法?風帆:如何使用水線加入兩個不同的模型
在MVC人們使用連接查詢來加入兩個不同的表,但在sails.js我必須使用?水線有什麼方法?風帆:如何使用水線加入兩個不同的模型
基於您正在使用的數據庫的答案。
例如,您需要在Mongo中填充不加入的值。或者如果您使用的是MySQL或類似軟件,則需要加入表格。
簡而言之,所有這些東西都通過水線覆蓋。所以你可以用關聯在api/models
中聲明模型。在Waterline適配器下執行連接和填充。
例如,您有User
和Comment
。
// api/models/User.js
module.exports = {
attributes: {
name: {
type: 'string'
},
comments: {
collection: 'Comment',
via: 'user'
}
}
};
// api/models/Comment.js
module.exports = {
attributes: {
text: {
type: 'string'
},
user: {
model: 'User',
via: 'comments'
}
}
};
那麼你就執行User.find()
並獲得已經從數據庫中加入\填充表。
但是,如果要執行手動加入,則可以在Model實例上使用.populate()
方法。例如:
// api/controllers/AnyController.js
module.exports = {
action: function(req, res) {
User
.findOne('ID_HERE')
.populate('comments')
.then(function(result) {})
.catch(function(error) {});
}
};
你可以閱讀更多關於populate
這裏 - http://sailsjs.org/documentation/reference/waterline-orm/queries/populate