javascript - 使用多对多关联向 SailsJS 模型添加重复项

标签 javascript many-to-many sails.js sails-mongo

我有两个模型,items 和 order,它们具有多对多关联。在过去的 5 个小时里,我一直在尝试做的是想出一种方法来将多个项目对象添加到一个订单中,包括重复项。

如果项目是独一无二的,它就可以很好地工作,但如果我尝试这样的事情:

    order.items.add([12, 13, 12, 12]);
    order.save();

它只会保存 12、13 件。重复的将被忽略,如果您想订购一件以上的任何商品,则不太好。

任何建议都会有所帮助。

最佳答案

数据库方案中的多对多关联是在一个表的任何记录与另一个表的任何记录之间创建关系,当然它总是唯一的,因为12已经与order有关联记录。

解决方案是,使用额外的模型来实现。例如,在 models文件夹:

订单.js

module.exports = {

  attributes: {
    items : {collection: 'OrderItem', via: 'order'}
  }
};

OrderItem.js

module.exports = {

  attributes: {
    order : {model: 'Order'},
    item  : {model: 'Item'}
  }
};

项目.js

module.exports = {

  attributes: {
  }
};

因此来自 Order模型,你可以添加一些OrderItem那是一个代表 Order 之间关系的模型和 Item , 和 OrderItemOrder 中是独一无二的尽管其记录下的 Item 可能相同。

关于javascript - 使用多对多关联向 SailsJS 模型添加重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232002/

相关文章:

javascript - 如何开始创建 HTML5 视频库

symfony1 - 在 Propel 中命名生成的函数

javascript - Redux-saga put方法不触发reducer

javascript - 如何像 PHP 那样在 javascript 中四舍五入

mysql - Laravel 5.8 多对多关系使用数据透视表的自定义列名称

node.js - 根据客户端 POST 表单的字段切换套接字 [ Sails Node js ]

sails.js - 为什么在 Sails 1.0.0 中禁止所有 JSON 帖子?

Node.js Web 应用程序示例/教程

javascript - Bootstrap Carousel - 图片下方的标题不影响控件的高度?

entity-framework - Linq to Entities From vs Join