您好我刚刚阅读了MongoDB中的WriteConcern并希望在我的代码中应用我正在做的就是这个
val mYdb = client("myDB")//get database Name
val collection = mYdb("directUser")//get collection Name
collection.drop()
val result:WriteResult= collection.insert(new BasicDBObject("_id",directuser.uuid)
.append("Email",directuser.email)
.append("SecondryEmail",directuser.secondryEmail)
.append("FirstName",directuser.firstName)
.append("LastName",directuser.lastName)
.append("UserStatus",directuser.userStatus.toString())
,WriteConcern.Acknowledged)
的定义
已确认 对于确认写入问题的收据,mongod确认它已收到写入操作并将更改应用于数据的内存中视图。已确认的写入问题允许客户端捕获网络,重复密钥和其他错误。
如何实现返回值并且还想获得确认
它接收到写入操作并将更改应用于 内存中的数据视图。
如何才能知道数据插入成功且插入时没有出现错误..请帮助
答案 0 :(得分:0)
正如您提供的文档所述,在Acknowledged
写入后,一旦插入已应用于内存,服务器将响应客户端。一旦插入在内存中应用,它就会“成功”,只有在复制文档或将日志和/或数据文件写入磁盘之前,持有数据的服务器崩溃时才会“丢失”。
如果写入失败,使用Java客户端insert(...)
将抛出异常。这意味着如果insert(...)
没有抛出异常,那么使用WriteConcern.Acknowledged
,文档现在在服务器上的内存中并且成功。 WriteResult
还包含写入结果的度量标准(尽管使用2.6之前的服务器,数字可能为零,但失败仍然会引发异常)。
如果您需要写入比仅仅在服务器的内存中更耐用,那么您可以使用其他WriteConcern
级别,通常权衡更高的延迟,从而导致写入更持久。有关详细信息,请参阅Javadoc。
HTH - Rob