首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sails.js的类别和子类别产品层次结构

使用Sails.js的类别和子类别产品层次结构
EN

Stack Overflow用户
提问于 2020-06-30 08:52:17
回答 1查看 219关注 0票数 0

我试图用Sails.js构建一个类似亚马逊的产品--类别和子类别层次结构。

我从多对多关系开始,到目前为止,我已经实现了其中的一半。直到现在,我得到的是分类,并且类别有与其相关的产品,下面是它的一个实例:

->蓝宝石RX 580,蓝宝石5700XT,Corsair 550 W PSU

下面是多对多关系模型的样子:

代码语言:javascript
复制
    // 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非常陌生。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 03:29:54

您可能需要一些名为自反关联的内容,然后在分类模型中包含类似的内容:

代码语言:javascript
复制
// api/models/Category.js

parent: {
  model: 'category'
}

children: {
  collection: 'category',
  via: 'parent'
}

如果您需要保存值:

代码语言:javascript
复制
const parentId = 1;
await Category.addToCollection(parentId, 'children').members([2, 3, 4]);

然后,当您需要填充“关系”字段时:

代码语言:javascript
复制
const categories = await Category.find().populate('children');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62653701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档