簡體   English   中英

帶有 .NET 驅動程序的 MongoDb 添加集合 jsonschema 驗證

[英]MongoDb with .NET driver add collection jsonschema validation

在使用 .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
   });

晚了幾年,但答案是使用 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
       });

我認為最好的解決方案是創建一個JavaScript文件,然后使用MongoDB隨附的Mongo Shell運行它。

這沒有按要求使用.NET驅動程序,但是我懷疑可以滿足任何人的需求。

請參閱: 為mongo shell編寫腳本

要從CMD行運行腳本:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM