如何在(db)集合级别定义MongoDB模式验证?

时间:2019-01-29 08:39:04

标签: node.js mongodb mongoose

我将MongoDB与Mongoose和Nodejs一起使用。定义模式(参考-See)后,当我尝试从代码中输入内容时,它就可以工作。 喜欢-如果尝试遵循以下代码


  timestamp null,

// User Model User.create({name: 'rahu', status: 'randomStr'}); 的类型实际上是枚举-status

它完美运行,['active', 'pending', 'deactivated', 'blocked']

但是,当我从Compass(或robomongo或未定义模式的任何其他代码)插入/更新值时,会保存错误的值。

  

所以我的问题是-有没有办法创建这些   像在PostgreSQL中那样在数据库级别进行约束/验证?

谢谢

1 个答案:

答案 0 :(得分:0)

您是在mongoose中定义方案还是直接在mongodb中定义方案?不一样 如果直接在mongodb中定义方案,问题仍然存在? https://docs.mongodb.com/manual/core/schema-validation/

从版本3.6开始的JSON模式验证。