mysql - 如何在 Node.js 中使用 Sequelize for MySql 编写猫鼬的对象 id 引用
问题描述
我正在尝试使用 Sequelize 编写 MySQL 的类别模型,并参考 node(shared below) 中的 mongoose 模型代码。我浏览了一些文章,但经历了一些混乱。请帮忙。
const mongoose = require("mongoose");
const categorySchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
trim: true,
},
createdBy: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
required: true,
},
},
);
module.exports = mongoose.model("Category", categorySchema);
在这里,我尝试了使用 Sequelize for MySql 的代码,但被困在 createdBy 块中。需要帮忙!!!
module.exports = (sequelize, Sequelize) => {
const Category = sequelize.define("categories", {
name:{
type: Sequelize.STRING,
required: true,
trim: true,
},
createdBy:{
}
});
return Category;
};
解决方案
Mongo的createdBy
值将是一个 ObjectID,您可以将其保存为 MySQL 中的字符串,因此DataTypes.STRING
在定义中使用一个类型,然后从 Mongo 查找中将其设置为插入/更新/等。您示例中的Sequelize
变量也应该是DataTypes
。
module.exports = (sequelize, DataTypes) => {
const Category = sequelize.define('categories', {
name: {
type: DataTypes.STRING,
required: true,
trim: true,
},
createdBy: {
type: DataTypes.STRING,
// any other settings
},
});
return Category;
};
// get the value from mongoose
const createdBy = ...;
// set it on the create for your model to insert.
await Category.create({
name: 'Some Name',
createdBy,
});
推荐阅读
- php - 如何使用 MAMP 5.1 启用通用 PHP 日志和 apache 请求日志
- python-3.x - 如何检查用户名是否存在于 cgi 脚本中的数据库中?
- html - 尝试在 Mac 上使用 Unix 从 HTML 文档中的一行中提取版本号
- sql-server - 如何为生产数据库生成脚本?
- python - 提高图像处理的准确性以计数真菌孢子
- javascript - 过滤角度json 7
- android - 如何在osmdroid中将指南针调整为地图
- c++ - 不允许使用抽象类数组
- java - Hibernate Many-to-Many with join 需要时间来获取所有数据
- python - 如何调用表达式并为其赋值