如果我正确理解了目标,您将希望遍历
dataJSON对象字段中的每个字段定义,然后通过将其映射到实际类型将其转换为猫鼬模式的有效字段。因此,您可以从这样的东西开始:
var mongoose = require('mongoose')var typeMappings ={"String":String, "Number":Number, "Boolean":Boolean, "ObjectId":mongoose.Schema.ObjectId, //....etc}function makeSchema(jsonSchema){ var outputSchemaDef = {} for(fieldName in jsonSchema.data){ var fieldType = jsonSchema.data[fieldName] if(typeMappings[fieldType]){ outputSchemaDef[fieldName] = typeMappings[fieldType] }else{ console.error("invalid type specified:", fieldType) } } return new mongoose.Schema(outputSchemaDef)}
为了处理嵌入式对象和数组类型,您可能需要对其进行修改以使其具有递归性,并在遇到这些类型的对象时更加深入,因为字段可以与任意深度/结构嵌套在一起。
希望这可以帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)