gpt4 book ai didi

java - MongoDB,写关注: need some clarification

转载 作者:行者123 更新时间:2023-12-02 01:41:54 25 4
gpt4 key购买 nike

我需要一些帮助来阐明 WriteConcern 的概念我正在使用 MongoDb 4.0.2(带有副本集)和 java-mongo-driver 3.8.1

我已经在 mongo 配置上添加了最后一个默认写入关注

{
"w": "majority",
"wtimeout": 5000
}

在代码端,什么时候可以使用数据库的ack响应?我发现,当您使用删除或更新时,该库会返回一个 Result 对象(作为DeleteResult),其中包含一个函数 wasAcknowledged() ,用于获取大多数副本上的删除/更新结果设置。

但是我无法为所有插入函数找到类似的结果。有人可以向我解释如何使用 WriteConcern 以避免数据丢失吗?

我的目标是在副本集插入/写入/更新出错时捕获异常

希望问题很清楚,我正在等待您的答复。谢谢

只是想知道,在数据库上设置此首选项是否足够,或者我还必须在我的代码上设置写入关注首选项?

最佳答案

您可以捕获MongoWriteConcernException。下面是insertOne的源代码和注释。

/**
* Inserts the provided document. If the document is missing an identifier, the driver should generate one.
*
* <p>Note: Supports retryable writes on MongoDB server versions 3.6 or higher when the retryWrites setting is enabled.</p>
* @param document the document to insert
* @throws com.mongodb.MongoWriteException if the write failed due some other failure specific to the insert command
* @throws com.mongodb.MongoWriteConcernException if the write failed due being unable to fulfil the write concern
* @throws com.mongodb.MongoException if the write failed due some other failure
*/
void insertOne(TDocument document);

关于java - MongoDB,写关注: need some clarification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54363179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com