[英]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.