Невозможно подключиться к MongoDB при использовании URI с учетными данными - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь создать простой CRUD API с драйвером MongoDB Rust, но мне не удается вставить что-либо в БД.Я использую Mlab для размещения своей базы данных.

Код, который я запускаю:

#[macro_use(bson, doc)]
extern crate bson;
extern crate mongodb;

use mongodb::db::ThreadedDatabase;
use mongodb::{Client, ThreadedClient};

fn main() {
    let client = Client::with_uri(
        "mongodb://<my_db_username>:<my_db_password>@ds235711.mlab.com:35711/rustcrud",
    )
    .expect("Failed to initialize client");

    let coll = client.db("rustcrud").collection("test");

    coll.insert_one(doc! { "title": "Back to the Future" }, None)
        .unwrap();
}

И ошибка, которую я получаю:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: OperationError("not authorized on rustcrud to execute command { insert: \"test\", $db: \"rustcrud\" }")', libcore/result.rs:1009:5

Чтоя делаю не так?

1 Ответ

0 голосов
/ 22 ноября 2018

Из репозитория GitHub проекта выпуск 256: добавление аутентификации в базовые примеры

аутентификация по паролю пользователя происходит на уровне базы данных.Пользователь, пароль и база данных анализируются по URI, но я не верю, что мы настроили автоматическую аутентификацию при создании объекта базы данных

let client = Client::with_uri("mongodb://x:y@localhost:27017")?;
client.auth("x", "y");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...