我想以高效且一致的方式填充目录。 (id 应该始终相同) 使用引用自身的模型来制作多树结构:
var Category = sequelize.define("Category", {
name: DataTypes.STRING
}, {
timestamps: false,
classMethods: {
associate: function(models) {
Category.hasMany(models.Category, {
as: 'Children',
foreignKey: 'ParentId',
useJunctionTable: false
});
}
}
});
数据示例:
var categories = [
{ name: "Menu A", Children: [
{ name: "Sub 1"},
{ name: "Sub 2", Children: [
{ name: "Element 1" },
{ name: "Element 2" }
]},
]}
];
ATM 我可以创建所有类别,例如:
var process = function (node) {
node.forEach(function (value, index, array) {
models.Category.create(value);
if(value.Children){
process(value.Children);
}
});
return node;
}
process(categories);
但我缺少模型关联。
最佳答案
我使用了模块https://github.com/domasx2/sequelize-fixtures实现与您类似的目标。
使用此模块,您可以使用固定 ID 和关联在数据库中加载数据:
[
{
"model": "Owner",
"data": {
"id": 11,
"name": "John Doe",
"city": "Vilnius"
}
},
{
"model": "Car",
"data": {
"id": 203,
"make": "Ford",
"owner": 11
}
}
]
希望这有帮助
关于node.js - 如何使用 Sequelize 填充树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952920/