有没有办法像下面那样采用有效的JSON模式并将其转换为mongoose模式?
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "some desc",
"title": "Product",
"type": "object",
"properties": {
"endpoints": {
"type": "array",
"items": {
"type": "string"
}
},
"poi": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location_name": {
"type": "string"
},
"distance": {
"type": "string"
}
}
}
}
}
}
这对我来说似乎很简单,但我在网上找不到任何东西
有大量关于如何获取JSON模式的示例,并且有大量示例如何从这样的对象创建mongoose模式:
const newSchema = new mongoose.Schema({ name: String });
如果我尝试直接放置JSON架构,我会收到错误
node_modules/mongoose/lib/schema.js:674
throw new TypeError('Undefined type `' + name + '` at `' + path +
^
TypeError: Undefined type `Http://json-schema.org/draft-04/schema#` at `$schema`
Did you try nesting Schemas? You can only nest using refs or arrays.
但我无法找到从一种类型转移到另一种类型的网络上的任何地方 以前有人遇到过这个问题吗?
编辑:
这个问题在概念上是不正确的
基本上,您所做的是针对之前的数据验证JSON模式将其保存到数据库。您可以使用来自npm或其他人的jsonschema
来执行此操作
因此,数据验证步骤与保存到DB步骤没有直接关联
我以为你可以将JSON模式应用于MongoDB模式,但事实并非如此。 (特别是当你有深层嵌套的对象时 - 那就太乱了)
答案 0 :(得分:1)
我一直在研究这个问题。由于您在问题上放置了node
标记,因此我找到了这些npm
repos:
到目前为止两者都在运作。
他们都是几岁。前者(TypeScript)有最近的提交。我可能最终更喜欢后者。
答案 1 :(得分:-3)