Sequelize之指定'where'查询结果与预期不一致(已解决但原因待究)

最近在敲Sequelize的时候遇到一个奇怪的问题。

我的代码类似酱紫:

const tagFilter = tag ? { name: tag } : {}
const categoryFilter = category ? { name: category } : {}
await Article.findAndCountAll({
    include: [
        { model: Tag, attributes: ['name'], where: tagFilter },
        { model: Category, attributes: ['name'], where: categoryFilter }
    ],
    offset: 0,
    limit: 10,
    order: [['createdAt', 'DESC']],
    row: true,
    distinct: true
});

此时我的Article模型对应的数据库Article表有12条数据:
《Sequelize之指定'where'查询结果与预期不一致(已解决但原因待究)》

Tag模型和Category模型没有查询条件的时候:

const tagFilter = {}
const categoryFilter = {}

预期结果应该是能得到12条数据,然而我得到的却是:
《Sequelize之指定'where'查询结果与预期不一致(已解决但原因待究)》

纳尼?怎么只有10条数据???我的柠檬7柠檬8呢!!!
后来发现,愚蠢如我忘记在数据库的Tag表和Category表加上柠檬7柠檬8的数据了。待我为这两篇文章都指定好tag和category之后,查出来的结果终于正确了。
然而,为什么?
先mark下来,以后搞懂了再回来填坑。欢迎路过的大侠指点一二~

    原文作者:晓铃檬
    原文地址: https://segmentfault.com/a/1190000019005940
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞