2017-09-19 4 views
0

Je suis nouveau avec Sequelize et j'ai un problème:Mongoose POSTGRES Sequelize

Comment écrire correctement le code ci-dessous avec sequelize?

1) default_tags: [] - cette ligne

2) Category.set() - cette ligne

var mongoose = require('../lib/mongoose') 

var Category = new mongoose.Schema({ 
    name: { 
    type: String, 
    unique: true, 
    }, 
    description: String, 
    default_tags: [{ 
    type: mongoose.Schema.Types.ObjectId, 
    ref: 'Tag', 
    }], 
}) 

Category.set('toJSON', { 
    virtuals: true, 
    versionKey: false 
}) 

module.exports = mongoose.model('Category', Category) 
+1

La première concerne [créer une association] (http://docs.sequelizejs.com/manual/tutorial/associations.html#one-to-many-associations) –

Répondre

0

J'ai fait la première sans association. C'est parce que je ne voulais pas de table séparée, car le tableau serait simplement utilisé sur cette relation/collection spécifique (Category). Je savais aussi que j'allais utiliser Sequelize avec Postgres. Si vous avez le luxe de faire Sequelize avec Postgres, vous pouvez utiliser des types composites Postgres:

sequelize.query(
     "CREATE TYPE category_tags_type AS (type varchar,ref varchar);" 
    ); 

Ensuite, quand cela a été exécuté, vous pouvez faire

const Category = sequelize.define("category", 
    { name: Sequelize.STRING, description: Sequelize.string, 
     default_tags: '_category_tags_type' 
    } 

Le début souligner avant category_tags_type dit sequelize cela un tableau.