猫鼬后传Sequelize

时间:2017-09-19 13:23:50

标签: node.js postgresql mongoose sequelize.js

我是Sequelize的新人,我有一个问题:

如何使用sequelize正确编写此代码?

1)default_tags: [] - 这一行

2)Category.set() - 这一行

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 个答案:

答案 0 :(得分:0)

我做了第一个没有关联的人。那是因为我不想要一个结果单独的表,因为该数组只会用在这个特定的关系/集合(Category)上。我也知道我会在Postgres上使用Sequelize。如果你有使用Postgres做Sequelize的奢侈,你可以使用Postgres复合类型:

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

然后当它运行时,你可以做

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

在category_tags_type之前的开头下划线告诉sequelize这是一个数组。