【发布时间】:2016-04-18 15:21:42
【问题描述】:
我正在开发一个包含多个 (>2) 表的 Sails 应用程序,我需要借助 populate 方法 加入这些表 例如
Category.js 模型
attributes: {
CategoryID:{
type:"integer",
required:true,
primaryKey:true,
autoIncrement:true
},
SubCategories:{ //REFERING TO SUB-CATEGORY TABLE
collection:'SubCategory',
via:'CategoryID'
},
CategoryName:{
type:"string",
required:true,
maxLength:50
}
}
这是 SubCategory.js 模型。
attributes: {
id:{
type:'integer',
required:true,
primaryKey:true,
autoIncrement:true,
maxLength:10,
columnName:'SubCategoryID'
},
CategoryID:{
model:'Category' //REFERING TO CATEGORY TABLE
},
ProductsOfCategory:{ //REFERING TO PRODUCT TABLE
collection:'Product',
via:'SubCategoryID'
},
SubCategory:{
type:"string",
required:true,
maxLength:50
}
}
和Product.js 模型
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true,
maxLength: 10,
columnName:'ProductID'
},
SubCategoryID: {
model:'SubCategory'
},
ProductDetails:{
collection:'ProductDetails',
via:'ProductID'
},
ProductName: {
type: "string",
required: true,
maxLength: 50
}
}
和ProductDeutils.js 模型
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true,
maxLength: 10,
columnName:'ProductDetailID'
},
ProductID:{
model:'Product'
},
Size:{
type:"string",
required:true,
maxLength:10
},
Color:{
type:"string",
required:true,
maxLength:10
}
}
在填充时,我可以填充每个类别的类别和子类别。
Category.find()
.populate('SubCategories')
.exec(function(err, categories){
if (err) {
console.log(err);
return res.json(err);
}
console.log(categories);
res.json(categories);
})
如何一次性填充上述所有表格,以便在最终查询后我们在一个 json 中获得上述所有详细信息。
我们得到以上所有表格的连接
即具有所有子类别的类别,具有所有产品的子类别和所有产品在一个 json 中具有产品详细信息
【问题讨论】:
-
ashishkumar - 我的回答对您有帮助吗?如果您觉得有帮助,请您标记为正确答案。还链接到一个(有点过时但非常相似的)SOF 问题。