我有一个包含文档的cosmos db集合,现在我想要的是当我在该集合中创建一个新文档时(使用.net文档DB API),我可以验证一些值。例如
我的文档有一个字段Name
,我希望只插入Peter
或John
。在cosmosdb中是否存在一种机制,以便我可以进行此类验证,或者我是否只能从应用程序代码中执行此操作?
答案 0 :(得分:2)
正如Gaurav Mantri评论说,您可以利用Database triggers验证文档中的属性,如下所示:
注意:不会自动调用触发器,您需要在调用相关操作时显式指定触发器。以下是创建新文档的代码示例,您可以参考它:
var result = await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(
DatabaseId,
DocumentCollectionId),
doc,
new RequestOptions() {
PreTriggerInclude=new List<string>() { "validateDocContent" }
});
如果验证失败,您将获得如下异常:
此外,这是一个类似的问题,您可以关注here。
答案 1 :(得分:0)
cosmosdb中是否存在一种机制,以便我可以这样做 验证或我是否只能从应用程序代码中进行验证?
因此,在服务级别上不存在类似这样的验证,因为这些验证特定于您的应用程序。您只需要在应用程序代码中处理它们。
答案 2 :(得分:0)
MongoDb使用JSON Schema在插入和更新时验证文档。
CosmosDb没有提供任何类似的功能,
CosmosDb提供了触发器cosmos-db/stored-procedures-triggers-udfs,azure-cosmosdb-js-server/samples/triggers/
在插入容器之前,可以使用触发器内的javascript-validator来验证架构/文档。
我没有有效的示例,但是我正在研究它。