【发布时间】:2018-12-20 16:38:47
【问题描述】:
我正在将嵌套的 JSON 数据推送到数据库。这就是我的架构的样子,
const mongoose = require('mongoose');
// original Schema
const dataSourceSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: { type: String, required: true, unique: true },
type: { type: String, required: true },
projectId: { type: mongoose.Schema.Types.ObjectId, ref: 'Project', required: true },
config:{type: String, required: true}
});
module.exports = mongoose.model('DataSource', dataSourceSchema);
我想将以下 json 数据传递给我的 dataSourceSchema,
{
“name”:”JdbcSourceConnector”,
"type" :"string",
“config”: {
“connector.class”:” io.confluent.connect.jdbc.JdbcSourceConnector”,
“tasks.max”:1,
“connection.url”:”<connection to connect to database along with username and password>”,
“mode”:”incrementing”,
“incrementing.column.name”:”<incrementing column name in table>”,
“topic.prefix”:”test-mysql-jdbc-”
}
}
但它不接受,会给出转换错误或“,”预期。
所以我尝试了这个,
const dataSourceSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: { type: String, required: true, unique: true },
type: { type: String, required: true },
projectId: { type: mongoose.Schema.Types.ObjectId, ref: 'Project', required: true },
config:{
connector.class:{ type: String, required: true },
tasks.max:{ type: String, required: true },
connection.url:{ type: String, required: true },
mode:{ type: String, required: true },
incrementing.column.name:{ type: String, required: true },
topic.prefix:{ type: String, required: true }
}
});
这个 Schema 也给了我错误,“,”是预期的。
如果我只传递我在原始模式中提到的字符串,则数据将存储在 db 中。
但我想传递嵌套的 json 数据,请指导我正确的方向。
我也试过stringify数据,它不起作用。
【问题讨论】:
-
您使用的是
“,这是一个特殊字符,请使用" -
为避免转换错误,请使用
Schema.Types.Mixed而不是String进行类似config:{type: Schema.Types.Mixed, required: true}的配置 -
谢谢 Arifkhan,我会试试这个。
标签: javascript json node.js mongoose mongoose-schema