我正在从事一个java/kotlin项目,在这个项目中,刚刚保存的对象应该可以立即进行搜索。就像同步保存在sql数据库(postgresql)中一样。我听说mongodbjava驱动程序提供了与mongodb的同步和异步交互。
但是mongodb是否确保在成功保存响应后,数据将立即可搜索?也许它有一个内部队列,用于存储尚未真正保存的数据,比如elasticsearch和couchbase?
换句话说,是否会抛出异常?例如在重载下。我们假设 someId = object.some_id
.
fun saveObjectInMongo(collection: MongoCollection<Document>, someId: String, object: String) {
collection.insertOne(Document.parse(object))
if (collection.find(eq("some_id", someId)).first().isNullOrEmpty()) {
throw RuntimeException("Can't get just saved object")
}
}
1条答案
按热度按时间guz6ccqo1#
主要概念是正确使用写/读关注点。在这种情况下,需要大多数人的关注。
写操作返回w:“多数”确认给客户端后,客户端可以用“多数”readconcern读取该写操作的结果
https://docs.mongodb.com/manual/reference/write-concern/httpshttp://docs.mongodb.com/manual/reference/read-concern/