如何使用MongoDB-JAVA API动态关闭模式验证

时间:2019-07-09 10:10:59

标签: mongodb

我创建了一个具有以下模式验证的集合,

ValidationOptions collOptions = new ValidationOptions();
collOptions.validator(sdoc);
collOptions.validationLevel(ValidationLevel.MODERATE);
collOptions.validationAction(ValidationAction.WARN);
srdmDatabase.createCollection(collectionName,new      CreateCollectionOptions().validationOptions(collOptions));

我的收藏集通过架构验证成功创建。

在某些情况下,我想动态关闭验证检查。

我发现在monogdb-java-driver中有一个选项可以关闭验证(ValidationLevel.OFF),但是我不知道如何使用该选项。 请帮助我一些如何以编程方式关闭验证检查的方法。

我们正在使用MongoDB-4.0和mongo-java-driver-3.10.2。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码绕过验证。

有关更新

collection.updateOne(
                Filters.eq("_id", 1),
                Updates.set("name", "Fresh Breads and Tulips"),
                new UpdateOptions().upsert(true).bypassDocumentValidation(true));

类似地,您可以使用InsertOptions.bypassDocumentValidation(true) 请参考此链接以获取更多信息https://docs.mongodb.com/manual/core/schema-validation/#bypass-document-validation