当前位置:  开发笔记 > 编程语言 > 正文

loopback关系数据库hasManyThrough数据透视表

如何解决《loopback关系数据库hasManyThrough数据透视表》经验,为你挑选了0个好方法。

我似乎陷入了经典的ORM问题,并且不知道如何处理它,所以在这一点上欢迎任何帮助.

有没有办法在hasManyThrough查询上获取数据透视表?更好的是,应用一些过滤器或排序.一个典型的例子

表产品

id,title

表类别

id,title

table products_categories

productsId, categoriesId, orderBy, main

因此,在上面的场景中,假设您希望获得(main = true)的所有类别的产品X,或者您希望按类别对产品类别进行排序orderBy.

现在会发生什么是第一SELECT的产品,以获得产品数据,第二SELECT对products_categories获得categoriesId和最终SELECT的类别,以获得实际的类别.理想情况下,过滤器和排序应该适用于第二SELECT

SELECT `id`,`productsId`,`categoriesId`,`orderBy`,`main` FROM `products_categories` WHERE `productsId` IN (180) WHERE main = 1 ORDER BY `orderBy` DESC

另一个典型的例子是希望根据用户想要的订单来订购产品图像

所以你会有一个products_images表

id,image,productsID,orderBy

你会想要的

SELECT from products_images WHERE productsId In (180) ORDER BY orderBy ASC

这甚至可能吗?

编辑:这是中间表根据我的架构获得我需要的内容所需的关系.

Products.hasMany(Images,
    {
        as: "Images",
        "foreignKey": "productsId",
        "through": ProductsImagesItems,
        scope: function (inst, filter) {
            return {active: 1};
        }
    });

事情是范围功能让我访问最终结果而不是中间表.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有