验证cosmosdb集合

时间:2017-11-28 13:49:19

标签: c# .net azure azure-cosmosdb document-database

我有一个包含文档的cosmos db集合,现在我想要的是当我在该集合中创建一个新文档时(使用.net文档DB API),我可以验证一些值。例如 我的文档有一个字段Name,我希望只插入PeterJohn。在cosmosdb中是否存在一种机制,以便我可以进行此类验证,或者我是否只能从应用程序代码中执行此操作?

3 个答案:

答案 0 :(得分:2)

正如Gaurav Mantri评论说,您可以利用Database triggers验证文档中的属性,如下所示:

enter image description here

注意:不会自动调用触发器,您需要在调用相关操作时显式指定触发器。以下是创建新文档的代码示例,您可以参考它:

var result = await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(
    DatabaseId, 
    DocumentCollectionId),
    doc,
    new RequestOptions() {
        PreTriggerInclude=new List<string>() { "validateDocContent" }
    });

如果验证失败,您将获得如下异常:

enter image description here

此外,这是一个类似的问题,您可以关注here

答案 1 :(得分:0)

  

cosmosdb中是否存在一种机制,以便我可以这样做   验证或我是否只能从应用程序代码中进行验证?

因此,在服务级别上不存在类似这样的验证,因为这些验证特定于您的应用程序。您只需要在应用程序代码中处理它们。

答案 2 :(得分:0)

MongoDb使用JSON Schema在插入和更新时验证文档。

CosmosDb没有提供任何类似的功能,

CosmosDb提供了触发器cosmos-db/stored-procedures-triggers-udfsazure-cosmosdb-js-server/samples/triggers/

在插入容器之前,可以使用触发器内的javascript-validator来验证架构/文档。

我没有有效的示例,但是我正在研究它。