使用.NET驱动程序的MongoDb添加集合jsonschema验证

时间:2018-03-29 14:11:19

标签: .net mongodb mongodb-.net-driver

使用.NET驱动程序在mongodb中创建集合时,有没有办法指定要验证的json模式?

我找到了有关如何使用代码设置验证器的文档,但没有找到如何使用json架构进行验证的文档。

我在使用.NET驱动程序时寻找模式验证的原因是使用代码指定验证有点冗长:

db.CreateCollectionAsync(
   "Foos",
   new CreateCollectionOptions<Foo> 
   { 
      Validator = FilterDefinitionBuilder<MongoCustomization>()
        .And(
            new FilterDefinitionBuilder<MongoCustomization>().Exists(c => c.Revision),
            new FilterDefinitionBuilder<MongoCustomization>().Type(c => c.Revision, BsonType.Int32),
            new FilterDefinitionBuilder<MongoCustomization>().Exists(c => c.CreatedBy)), 
      ValidationAction = DocumentValidationAction.Error, 
      ValidationLevel = DocumentValidationLevel.Strict
   });

1 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是创建一个JavaScript文件,然后使用MongoDB随附的Mongo Shell运行它。

这没有按要求使用.NET驱动程序,但是我怀疑满足了任何人的需求。

请参阅:Write scripts for the mongo shell

要从CMD行运行脚本,请执行以下操作:

> cd "C:\Program Files\MongoDB\Server\4.0\bin"     <--- your mongo bin directory
> mongo path-to-script.js