javascript - 无法从 sequelize 中的 select 语句中排除关联的字段

标签 javascript node.js sqlite sequelize.js

我有以下代码(简化):

var group = sequelize.define("group", {
    id: {type: DataTypes.INTEGER, autoIncrement: false, primaryKey: true},
    name: type: DataTypes.STRING,
    parentId: DataTypes.INTEGER
}, { classMethods: {
        associate: function (models) {
            group.belongsToMany(models.item, { as:'items', foreignKey: 'group_id', through: models.group_item_tie });
        }}
});

var group_item_tie = sequelize.define("group_item_tie", {}, {freezeTableName: true});

var item = sequelize.define("item", {
    spn: { type: DataTypes.INTEGER, autoIncrement: false, primaryKey: true },
}, { classMethods: {
        associate: function (models) {
            item.belongsToMany(models.group, { foreignKey: 'spn', through: models.group_item_tie });
        }}
});

当我尝试返回一些具有关系的记录时,可以这样说:

dbcontext.group.findAll({
    where: { id: 6 },
    include: [{
                model: dbcontext.item,
                as: 'items',
                attributes: ['spn']
            }]
    })

我还从关系表 group_item_tie 中获得结果:

[{
    "id": 6,
    "name": "abc",
    "parentId": 5,
    "createdAt": "2015-05-06T15:54:58.000Z",
    "updatedAt": "2015-05-06T15:54:58.000Z",
    "items": [
        {   "spn": 1,
            "group_item_tie": {
                "createdAt": "2015-05-06 15:54:58.000 +00:00",
                "updatedAt": "2015-05-06 15:54:58.000 +00:00",
                "group_id": 6,
                "spn": 1
            }
        },
        {   "spn": 2,
            "group_item_tie": {
                "createdAt": "2015-05-06 15:54:58.000 +00:00",
                "updatedAt": "2015-05-06 15:54:58.000 +00:00",
                "group_id": 6,
                "spn": 2
            }
        },

我在生成的 sql 查询中看到它。如何从选择语句中排除那些?我尝试了其他一些方法,但没有成功。

我希望有一些更清洁的东西然后只是做:

delete item.group_item_tie;

最佳答案

我将回答自己,因为它可能对将来的某人有用。所以根据#3664 , #2974#2975答案如下(感谢mickhansen):

include: [{
  model: dbcontext.item,
  as: 'items',
  attributes: ['spn'],
  through: {
    attributes: []
  }        
}]

很快就会记录下来。

关于javascript - 无法从 sequelize 中的 select 语句中排除关联的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30082625/

相关文章:

javascript - 如何访问和处理嵌套对象,数组或JSON?

node.js - 如何在reactJS中初始化未知长度的数组状态?

node.js - 如何从 require 对象获取 module.export 外部定义的属性

Android 跟踪文件描述符在生产环境中泄漏

c# - Entity Framework Core 中初始迁移后出现 "No such table"错误

javascript - 从使用 VideoJS 录制的视频 blob 中提取图片

javascript - 从卡住的父对象创建新对象

javascript - TranslateX 显示为动画

javascript - 使用 Q 服务链接异步事件

mysql - 关于从 mysql 源填充 sqlite 数据库的 ruby​​ 解决方案的任何建议