使用javascript对象创建猫鼬模式

时间:2018-09-28 11:53:59

标签: node.js mongoose

这似乎是一个非常愚蠢的问题,但是是否可以传递js对象,而不必在Schema分配期间编写键值对?

所以,您能说的不是let schema = new mongoose.Schema({name: String})

 const mongoose = require('mongoose')

let obj = {name: String}
let schema = new mongoose.Schema(obj)

谢谢!

2 个答案:

答案 0 :(得分:0)

答案是:你不能。

因为那是猫鼬的工作方式。这个框架包含许多规则,我们必须遵守这些规则才能成功利用其功能。

答案 1 :(得分:0)

是的,您可以将key: type对,验证等作为Schema中的对象进行传递。基本上,它的作用是将对象中提供的定义传递给架构构造器。

 constructor(definition?: SchemaDefinition, options?: SchemaOptions);

但是,每当您以object的方式编写时,自动完成功能和其他类型将不可用(IDE智能感知),并且在编译时会导致更多容易出错的代码,并且对数据库没有任何影响。这样。