2015-05-06 5 views
11

में चुनिंदा बयान से संघ के क्षेत्रों को छोड़ नहीं सकता मैं निम्नलिखित कोड (सरलीकृत):sequelize

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'] 
      }] 
    }) 

मैं भी एक टाई तालिका से खेतों परिणाम में मिलता है:

[{ 
    "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 
      } 
     }, 

मैं इसे जेनरेट एसक्यूएल क्वेरी में देखता हूं। चयन कथन से उनको कैसे बाहर निकालें? मैंने कुछ अन्य चीजों की कोशिश की है लेकिन सफल नहीं हुआ।

delete item.group_item_tie; 

उत्तर

31

मैं अपने आप को जवाब देने के लिए के रूप में यह भविष्य में किसी के लिए उपयोगी हो सकता है जा रहा हूँ:

मुझे आशा है कि कुछ क्लीनर तो बस कर रही है। तो #3664, #2974 और #2975 के अनुसार जवाब निम्नलिखित (mickhansen करने के लिए धन्यवाद) है:

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

और जल्द ही यह दस्तावेज की जाएगी।

+0

मेरे जीवन के लिए मैं इसे काम नहीं कर सकता ... क्या हमें यकीन है कि यह काम करता है? – MirroredFate

+0

मेरे लिए काम किया @ मिररफ़ेटफेट, यदि आपके पास अभी भी है, तो अपना कोड पेस्टबिन पर पोस्ट करें और इसे देखें। –

+0

@ गुस्तावोमीरा यहां पहले से ही एक मुद्दा है: https://github.com/sequelize/sequelize/issues/5590 – MirroredFate

संबंधित मुद्दे