如何使用MongoDB JAVA API动态关闭模式验证
我创建了一个具有模式验证的集合,如下所示如何使用MongoDB JAVA API动态关闭模式验证,mongodb,Mongodb,我创建了一个具有模式验证的集合,如下所示 ValidationOptions collOptions = new ValidationOptions(); collOptions.validator(sdoc); collOptions.validationLevel(ValidationLevel.MODERATE); collOptions.validationAction(ValidationAction.WARN); srdmDatabase.createCollection(colle
ValidationOptions collOptions = new ValidationOptions();
collOptions.validator(sdoc);
collOptions.validationLevel(ValidationLevel.MODERATE);
collOptions.validationAction(ValidationAction.WARN);
srdmDatabase.createCollection(collectionName,new CreateCollectionOptions().validationOptions(collOptions));
已通过架构验证成功创建我的集合
在某些情况下,我希望动态关闭验证检查
我发现monogdb java驱动程序中有一个关闭验证(ValidationLevel.OFF)的选项,但我不知道如何使用这个选项。
请帮助我了解如何以编程方式关闭验证检查
我们使用的是MongoDB-4.0和mongo-java-driver-3.10.2
提前感谢。您可以尝试使用以下代码绕过验证 更新
collection.updateOne(
Filters.eq("_id", 1),
Updates.set("name", "Fresh Breads and Tulips"),
new UpdateOptions().upsert(true).bypassDocumentValidation(true));
与插入类似,您可以使用InsertOptions.bypassDocumentValidation(true)
有关更多信息,请参阅此链接用例是什么?您可以绕过某些操作上的验证,并且可以将其设置为“验证失败时发出警告”而不是“拒绝”。感谢您的回复。在我的例子中,我不想为导入操作验证db,在这种情况下,我想关闭验证(ValidationLevel.OFF)。验证会增加相当小的开销,因此除非您希望导入无效文档,否则可以保持打开状态以确保数据完整性。否则,
mongoimport--bypassDocumentValidation
或Java驱动程序(应用于大型写入)具有setBypassDocumentValidation
参数。