我试图用Sails.js构建一个类似亚马逊的产品--类别和子类别层次结构。
我从多对多关系开始,到目前为止,我已经实现了其中的一半。直到现在,我得到的是分类,并且类别有与其相关的产品,下面是它的一个实例:
->蓝宝石RX 580,蓝宝石5700XT,Corsair 550 W PSU
下面是多对多关系模型的样子:
// Product.js
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
unique: true,
allowNull: false
},
keywords: {
type: 'json',
required: false
},
// Reference to Category
category: {
collection: 'category',
via: 'product'
},
},
};
// Category.js
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
unique: true
},
// Reference to Product
product: {
collection: 'product',
via: 'category'
}
}
};我想从中构建的是将子类别划分为类别,下面是它的一个实例:
->图形卡->蓝宝石RX 580蓝宝石5700XT
电脑配件->电源-> Corsair 550 W PSU
我对JavaScript和Sails非常陌生。如有任何建议,将不胜感激。
发布于 2020-07-01 03:29:54
您可能需要一些名为自反关联的内容,然后在分类模型中包含类似的内容:
// api/models/Category.js
parent: {
model: 'category'
}
children: {
collection: 'category',
via: 'parent'
}如果您需要保存值:
const parentId = 1;
await Category.addToCollection(parentId, 'children').members([2, 3, 4]);然后,当您需要填充“关系”字段时:
const categories = await Category.find().populate('children');https://stackoverflow.com/questions/62653701
复制相似问题