Node.js 帆:如何使用水线连接两个不同的模型
在MVC中,人们使用连接查询来连接两个不同的表,但在sails.js中,我必须使用什么?水线有什么办法 答案基于您使用的数据库 例如,您需要在Mongo中填充值才能不加入。或者,如果您使用的是MySQL或类似的数据库,则需要连接表 简而言之,所有这些东西都是通过水线覆盖的。因此,您可以在Node.js 帆:如何使用水线连接两个不同的模型,node.js,sails.js,waterline,Node.js,Sails.js,Waterline,在MVC中,人们使用连接查询来连接两个不同的表,但在sails.js中,我必须使用什么?水线有什么办法 答案基于您使用的数据库 例如,您需要在Mongo中填充值才能不加入。或者,如果您使用的是MySQL或类似的数据库,则需要连接表 简而言之,所有这些东西都是通过水线覆盖的。因此,您可以在api/models中使用关联声明模型。连接和填充在吃水线适配器下执行 例如,您有User和Comment // api/models/User.js module.exports = { attribute
api/models
中使用关联声明模型。连接和填充在吃水线适配器下执行
例如,您有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()
,并从数据库中获取已加入\已填充的表
但是,如果要执行手动连接,可以在模型实例上使用.populate()
方法。例如:
// api/controllers/AnyController.js
module.exports = {
action: function(req, res) {
User
.findOne('ID_HERE')
.populate('comments')
.then(function(result) {})
.catch(function(error) {});
}
};
您可以在此处阅读有关填充的更多信息-