CNode

关于node sequelize跨库查询的问题

问答
Eenternull发布于6 年前最后回复6 年前4 回复6816 浏览0 收藏

今天有个需求要跨库查询,但是用include 只会查同一个sequelize实例,有点懵,除了写sql 还有别的用sequelize直接能做到的方式吗?

const result = await ctx.userModel.OrderCart.findAll({
      attributes: ['id', 'productCount'],
      include: {
        model: ctx.productModel.ProductInfo,
        attributes: {
          exclude: ['create_time', 'update_time', 'averageCost']
        }
      }
})

类似这样的形式,报错是找不到表,应该是sequelize 不能跨实例查询。。。

查看回复

回复 (4)

I
i5ting#1·6 年前

最好的是分布式事务处理。其次是etl将表同步到一个库里。

Z
zy445566#2·6 年前

使用两个sequelize实例查两次。或者另外一个库启动一个服务,使用类似微服务的方式调用。

Y
yuedun#3·6 年前

必须要用两个实例,3个,4个也行。但是这样合理吗?跨库查询本身就有点问题,既然是跨库了最好是跨服务,再将数据聚合到一个表中

9
92hackers#4·6 年前

歪个楼,目前 Breword 正在将 sequelize 文档翻译为中文,对 Sequelize 熟悉,以及想要参与贡献翻译的同学,欢迎一起参与翻译。

翻译项目地址为:https://www.breword.com/projects/5f16a188b1836a001beb781a

参与回复
登录后即可参与回复。登录