我正在使用 sequelize (4.42.0) 和 express。我有两个表 categoriesmain_categories ,它们具有以下关联:

db.main_categories.hasMany(db.categories);
db.categories.belongsTo(db.main_categories);

我尝试使用以下 sequelize 命令获取在其主要类别下分组的所有类别的列表:
      var _categoryList = await models.main_categories.findAll({include: [{model: models.categories}], group:['main_categories.id']});
 res.send({category_list: _categoryList});

上述 Sequelize 代码的输出是:
{
    "category_list": [
        {
            "id": 1,
            "name": "Physics",
            "created_at": null,
            "updated_at": null,
            "categories": [
                {
                    "id": 1,
                    "name": "Mechanics",
                    "created_at": "2019-03-21T03:39:48.000Z",
                    "updated_at": "2019-03-21T03:39:48.000Z",
                    "main_category_id": 1
                }
            ]
        },
        {
            "id": 2,
            "name": "Chemistry",
            "created_at": null,
            "updated_at": null,
            "categories": [
                {
                    "id": 6,
                    "name": "General and Physical Chemistry",
                    "created_at": "2019-03-21T03:42:54.000Z",
                    "updated_at": "2019-03-21T03:42:54.000Z",
                    "main_category_id": 2
                }
            ]
        },
        {
            "id": 3,
            "name": "Zoology",
            "created_at": null,
            "updated_at": null,
            "categories": []
        },
        {
            "id": 4,
            "name": "Botany",
            "created_at": null,
            "updated_at": null,
            "categories": []
        }
    ]
}

我的预期输出是每个 main_category 中的类别数组将包含属于同一主类别的所有类别的详细信息,而不是上面输出中所示的一个。

我的带有数据的 main_categories 表:
mysql - 在 sequelize 中使用 groupby 获取分组项的数组-LMLPHP

我的带有数据的 categories 表:
mysql - 在 sequelize 中使用 groupby 获取分组项的数组-LMLPHP

最佳答案

所以我后来发现,由于已经声明了关联,我们只需要包含模型而没有任何 groupby 子句。所以对我有用的最终代码是:

var _categoryList = await models.main_categories.findAll({include: [{model: models.categories}]});

关于mysql - 在 sequelize 中使用 groupby 获取分组项的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55274194/

10-15 14:48