MongoDb 与 .NET 驱动程序添加集合 jsonschema 验证

mor*_*rtb 4 .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
   });
Run Code Online (Sandbox Code Playgroud)

Joh*_*ero 5

晚了几年,但答案是使用 FilterDefinitionBuilder 类的 JsonSchema 方法。像这样:

    db.CreateCollectionAsync(
       "Foos",
       new CreateCollectionOptions<Foo>
       {
           Validator = new FilterDefinitionBuilder<Foo>().JsonSchema(BsonDocument.Parse("your JSON goes here")),
           ValidationAction = DocumentValidationAction.Error,
           ValidationLevel = DocumentValidationLevel.Strict
       });
Run Code Online (Sandbox Code Playgroud)