Sails 可以同时查询两个表吗?
Can Sails query two tables at the same time?
我正在尝试使用 Sails 查询语言查询两个表,以 Postgresql 作为数据库。
我有两个表 'Person' 和 'Pet'。
对于'Person',它的型号是:
id: { type: 'integer', primaryKey }
namePerson: { type: 'string' }
age: { type: 'integer' }
对于'Pet',它的型号是:
id: { type: 'integer', primaryKey }
owner: { model: 'Person' }
namePet: { type: 'string' }
我想查找 12 岁以下的人拥有的所有宠物,并且我想在单个查询中完成。这可能吗?
我只知道在两个查询中怎么做。首先,找出所有小于 12 岁的人:
Person.find({age: {'<', 12}}).exec(function (err, persons) {..};
然后,找出他们拥有的所有宠物:
Pet.find({owner: persons}).exec( ... )
这里需要one-to-many association(一个人可以养几只宠物)
你的人应该与宠物有关:
module.exports = {
attributes: {
// ...
pets:{
collection: 'pet',
via: 'owner'
}
}
}
您的宠物应该与人相关联:
module.exports = {
attributes: {
// ...
owner:{
model:'person'
}
}
}
您仍然可以按年龄标准查找用户:
Person
.find({age: {'<', 12}})
.exec(function (err, persons) { /* ... */ });
要获取用户及其宠物,您应该填充关联:
Person
.find({age: {'<', 12}})
.populate('pets')
.exec(function(err, persons) {
/*
persons is array of users with given age.
Each of them contains array of his pets
*/
});
Sails 允许您在一个查询中执行多个填充,例如:
Person
.find({age: {'<', 12}})
.populate('pets')
.populate('children')
// ...
但嵌套种群不存在,问题discussion here。
我正在尝试使用 Sails 查询语言查询两个表,以 Postgresql 作为数据库。
我有两个表 'Person' 和 'Pet'。
对于'Person',它的型号是:
id: { type: 'integer', primaryKey }
namePerson: { type: 'string' }
age: { type: 'integer' }
对于'Pet',它的型号是:
id: { type: 'integer', primaryKey }
owner: { model: 'Person' }
namePet: { type: 'string' }
我想查找 12 岁以下的人拥有的所有宠物,并且我想在单个查询中完成。这可能吗?
我只知道在两个查询中怎么做。首先,找出所有小于 12 岁的人:
Person.find({age: {'<', 12}}).exec(function (err, persons) {..};
然后,找出他们拥有的所有宠物:
Pet.find({owner: persons}).exec( ... )
这里需要one-to-many association(一个人可以养几只宠物)
你的人应该与宠物有关:
module.exports = {
attributes: {
// ...
pets:{
collection: 'pet',
via: 'owner'
}
}
}
您的宠物应该与人相关联:
module.exports = {
attributes: {
// ...
owner:{
model:'person'
}
}
}
您仍然可以按年龄标准查找用户:
Person
.find({age: {'<', 12}})
.exec(function (err, persons) { /* ... */ });
要获取用户及其宠物,您应该填充关联:
Person
.find({age: {'<', 12}})
.populate('pets')
.exec(function(err, persons) {
/*
persons is array of users with given age.
Each of them contains array of his pets
*/
});
Sails 允许您在一个查询中执行多个填充,例如:
Person
.find({age: {'<', 12}})
.populate('pets')
.populate('children')
// ...
但嵌套种群不存在,问题discussion here。