使用.NET驱动程序在MongoDB中插入之前验证文档

时间:2017-06-18 16:28:55

标签: c# .net mongodb validation insert

我是.NET开发的新手,并且正在尝试开发一个基本的控制台应用程序来将数据插入MongoDB。我成功地使用MongoDB的.NET驱动程序连接,创建集合,插入和查询数据。我的下一步是在插入之前验证数据。我找到documentation并尝试在shell和pymongo驱动程序中进行验证,但无法找到.NET等效项。有人可以指向我一些文档或教程吗? (我在Mongo大学找到了一门课程,但是几个月后才开始。)

提前致谢。

2 个答案:

答案 0 :(得分:3)

文档验证

我相信你正在寻找document validation in MongoDB。它自3.2版本起就得到了支持。你可以在文档中看到,有

  • validationLevel设置验证规则适用于
  • 的文档
  • validationAction设置验证失败是否会产生错误,文档是否被拒绝,或者警告是否已插入文档。

这会将验证职责推送到数据库而不是代码中。如果有多个客户端访问数据库,这可能会很好。

C#驱动程序

主线C#驱动程序以及旧版C#驱动程序支持文档验证。正如您在文档中看到的那样,您在创建集合时设置了验证器(或者使用collMod将验证器添加到现有集合中,但我不会进一步讨论)。该驱动程序包含CreateCollectionOptions文档Validator类,ValidationActionValidationLevel内的属性。 CreateCollectionOptions是您传递给CreateCollection函数的第二个参数。以下是the source code以及creates a collection with a simple validatoranother的测试。

答案 1 :(得分:0)

您找到的documentation用于验证已插入集合中的文档。

如果要验证要插入的文档,我建议如下:

BSON支持有限数量的数据类型。所有这些都在.NET中有适当的表示。

使用它们创建与文档结构相对应的类。例如:

class dbEntry
{
    public BsonObjectId _id { get; set; }
    public string name { get; set; }
    public string ID { get; set; }
    public DateTime CreationDate { get; set; }
    public bool deleted { get; set; }
}

创建该类的对象时,值必须符合您定义的数据类型。如果你问我,这在.NET中是非常可靠的验证。