我正在开发一个可以读取mongodb文档的rust应用程序。连接使用应代表副本集的字符串完成:mongodb://host1:port1,host2:port2...
我使用与下面类似的代码:
let servers_list = "mongodb://host1:port1,host2:port2,host3:port3";
let mut client_options = ClientOptions::parse(servers_list).await?;
servers_list.app_name - Some("name".to_string());
let client = Client::with_options(client_options)?;
let db = client.database("database_name".to_string())?;
let collection = db.collection::<Document>("collection_name".to_string());
字符串
如果只有host 1:port 1有效,那么我的读取尝试就会崩溃,并返回ResultErr。我希望只从其中一个服务器读取,而不检查所有服务器的有效性。
当使用Compass连接到同一个副本集时,我得到了一个到有效主机的连接,这就像试图连接到那个主机而不提及其他主机一样。
所以我的问题是:我可以使用rust库获得相同的行为而不需要任何特殊的错误处理吗?是否可以使用选项来获得该行为?
谢啦,谢啦
1条答案
按热度按时间e4yzc0pl1#
这个问题原来是一个错误的服务器配置,这导致mongodb服务器只是3个独立的服务器,当客户端无法获得其中一个连接时,它返回错误。