- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是rust的n00b者,并且我尝试使用the mongodb rust crate v0.4.0顺利连接到MongoDB Atlas MongoDB 4.0版集群上的数据库。
在Atlas中,我授予了防火墙访问权限,并且可以从我的家庭IP连接,因此它不是权限/访问权限的问题。我搜索了错误,但在该主题上找不到太多帮助。看起来mongodb rust 驱动程序还很年轻,还没有完全烘焙。
我得到的错误是:thread 'main' panicked at 'called Result::unwrap() on an Err value: OperationError("No servers available for the provided ReadPreference.")'
下面的回溯详细信息:
Running `target/debug/gigs-core`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: OperationError("No servers available for the provided ReadPreference.")', src/libcore/result.rs:1165:5
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print_fmt
at src/libstd/sys_common/backtrace.rs:77
3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
at src/libstd/sys_common/backtrace.rs:61
4: core::fmt::write
at src/libcore/fmt/mod.rs:1028
5: std::io::Write::write_fmt
at src/libstd/io/mod.rs:1412
6: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:65
7: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:50
8: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:188
9: std::panicking::default_hook
at src/libstd/panicking.rs:205
10: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:464
11: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:373
12: rust_begin_unwind
at src/libstd/panicking.rs:302
13: core::panicking::panic_fmt
at src/libcore/panicking.rs:139
14: core::result::unwrap_failed
at src/libcore/result.rs:1165
15: core::result::Result<T,E>::unwrap
at /rustc/91fd6283e658e2c7aab2d3f5206fc1891f486af2/src/libcore/result.rs:933
16: gigs_core::main
at src/main.rs:12
17: std::rt::lang_start::{{closure}}
at /rustc/91fd6283e658e2c7aab2d3f5206fc1891f486af2/src/libstd/rt.rs:61
18: std::rt::lang_start_internal::{{closure}}
at src/libstd/rt.rs:48
19: std::panicking::try::do_call
at src/libstd/panicking.rs:287
20: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:83
21: std::panicking::try
at src/libstd/panicking.rs:265
22: std::panic::catch_unwind
at src/libstd/panic.rs:396
23: std::rt::lang_start_internal
at src/libstd/rt.rs:47
24: std::rt::lang_start
at /rustc/91fd6283e658e2c7aab2d3f5206fc1891f486af2/src/libstd/rt.rs:61
25: gigs_core::main
use mongodb::{Bson, bson, doc};
use mongodb::{Client, ThreadedClient};
use mongodb::db::ThreadedDatabase;
fn main() {
let mongodb_uri = String::from("mongodb://cluster0-kbbbhky.mongodb.net:2017, \
cluster0-shard-00-00-kbbbhky.mongodb.net:27017, \
cluster0-shard-00-00-kbbbhky.mongodb.net:27017/"
);
let client = Client::with_uri(&mongodb_uri)
.expect("Failed to initialize client.");
client.db("admin").auth("username","password").unwrap();
let coll = client.db("gigs_core").collection("events");
let cursor = coll.find(None, None).unwrap();
for result in cursor{
if let Ok(item) = result {
if let Some(&Bson::String(ref name)) = item.get("name"){
println!("name : {}",name);
}
}
}
}
最佳答案
我之前遇到过类似的问题,并使用with_unauthenticated_ssl
选项进行了修复。
(似乎MongoDB Atlas需要SSL连接。)
首先,编辑Cargo.toml
以启用"ssl"
的mongodb
功能
mongodb = { version = "0.4.0", features = ["ssl"] }
with_unauthenticated_ssl
选项创建一个客户端。
use mongodb::{Bson, bson, doc};
use mongodb::{Client, ClientOptions, ThreadedClient};
use mongodb::db::ThreadedDatabase;
fn main() {
let mongodb_uri = String::from("mongodb://cluster0-kbbbhky.mongodb.net:2017, \
cluster0-shard-00-00-kbbbhky.mongodb.net:27017, \
cluster0-shard-00-00-kbbbhky.mongodb.net:27017/"
);
// Define options
let opts = ClientOptions::with_unauthenticated_ssl(None, false);
// Initialize with options
let client = Client::with_uri_and_options(&mongodb_uri, opts)
.expect("Failed to initialize client.");
client.db("admin").auth("username","password").unwrap();
let coll = client.db("gigs_core").collection("events");
let cursor = coll.find(None, None).unwrap();
for result in cursor{
if let Ok(item) = result {
if let Some(&Bson::String(ref name)) = item.get("name"){
println!("name : {}",name);
}
}
}
}
mongodb_uri
看起来不正确。您也应该检查一下。
"ssh"
功能,但这是一个错字。
mongodb
crate 没有这种功能。)
关于mongodb - 无法连接到 rust 的MongoDB Atlas数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58682911/
我正在尝试在 Ubuntu 上以独立方式运行 Apache Atlas - 这意味着无需设置 Solr 和/或 HBase。 我所做的(根据文档: http://atlas.apache.org/0.
我对 mongodb 和 atlas 还很陌生,对以下警报感到困惑 Query Targeting: Scanned Objects / Returned has gone above 1000 我希
在 Cloud Mongo (Mongo Atlas) 免费层上,它有 3 个服务器成员。如何从 Mongo shell 连接到 Secondary 主机?他们的例子只展示了如何连接到 Primary
我正在学习 Atlas 并试图找到一种从 RDBMS(如(Sql Server 或 Postgre Sql))导入元数据的方法。 有人可以提供引用或步骤吗? 我在 docker 中使用 Atlas 并
现在我无法解决依赖性,怎么了? 公司会更改名称吗?但是,我在他们的网站上看到它,但没有“com.layer.atlas:layer-atlas”,但是我的应用程序包含此依赖项,谁能告诉我原因? 最佳答
我的目标是创建一个索引 + 搜索管道,因此我可以通过搜索“reprod”找到以下文档: { name: "can you find this and reproduce?" } 我有什么: 我正在使用
我的目标是创建一个索引 + 搜索管道,因此我可以通过搜索“reprod”找到以下文档: { name: "can you find this and reproduce?" } 我有什么: 我正在使用
在调查用于物联网数据存储的兼容数据库时,我查看了 MongoDB,发现定价有点令人困惑。 只是想知道 MongoDB Atlas 之间有什么区别?和 MongoDB Atlas for AWS因为他们
当我点击删除按钮时,它显示: 错误信息:“项目名称”有正在运行的 Atlas 集群。在删除项目之前,需要终止所有 Atlas 集群。如下图所示: 最佳答案 这真的很容易。您只需要在删除项目之前终止集群
我正在评估从 Google Kubernetes Engine 迁移到 Google Cloud Run,以提高我们公司内部的成本和资源效率。我还在将我们的工作流从单一的 PHP 和 Ruby 应用程
我使用以下过程将本地数据库迁移到图集 使用 mongoexport --db bla 将数据库集合一一导出 --collection usersettings --jsonArray --out ~/
Atlassian plugin SDK用于为 Atlassian 产品创建插件。 该套件包括两个程序,atlas-run和 atlas-run-standalone似乎执行相同的任务:在其中一个产品
如果结果是40,那么将结果限制为10也会将MATCHED_COUNT更改为10,而实际上它应该是40。关于atlas搜索的Mongoose文档非常有限,不包括这样的情况。如果你遇到过类似的问题,如果你
在最近的一次培训中,我了解了使用$earch操作符的好处。我想修改我的$Match查询以使用$Search。但是,我找不到与$in运算符等效的运算符。。当字段需要匹配单个对象ID时,这是没有问题的,我
我们如何以最短的停机时间将数据从 MongoDB ATLAS 迁移到本地?我们可以使用 mongomirror 从本地迁移到 ATLAS。是否有任何类似的工具可以将日期从 MongoDB ATLAS
我在尝试将容器化的应用程序部署到GKE时遇到问题。它无法访问我的MongoDB Atlas集群。在本地运行Docker容器不会产生任何问题,并且运行良好。我绝不是Docker或Kubernetes的专
在我尝试将我的 Assets ( Sprite 表)放入 iOS 框架之前,一切都运行良好。我正在使用 Swift 3.0 为了减轻我的 Xcode 项目的负担,我决定将我的 Assets :Text
所以我有一个 vapor\fluent 应用程序可以很好地与本地 mongo 实例一起工作,这是当前的 mongo.json: { "database" : "vapor", "por
我正在尝试关注this答案是从云函数连接到 mongodb atlas 数据库。 我使用上面答案中的代码: import { MongoClient } from 'mongodb' const ur
我一次只删除 Mongodb 云数据库(Atlas)中的一条记录。我有 60 条记录要删除,这很痛苦。我没有看到一次删除多条记录的明显方法。有没有简单的方法可以做到这一点? 最佳答案 您实际上无法在
我是一名优秀的程序员,十分优秀!