Я пытаюсь использовать метод .get
для BSON OrderedDocument
, который я получаю из запроса MongoDB. Для обработки любых ошибок в запросе я использую оператор match
в запросе.
let id: String = "example".to_string();
let doc = match db.media.find_one(
Some(doc! {
"id" : id
}),
None,
) {
Ok(c) => c,
Err(e) => {
// do stuff with the error
return;
}
};
println!("{:?}", doc.get("field"));
Возвращает ошибку для последней строки:
ошибка [E0599]: метод с именем get
не найден для типа std::option::Option<bson::ordered::OrderedDocument>
в текущей области
Это должно означать, что тип, возвращаемый из операции match
, является Option
, а не OrderedDocument
, как я ожидал. Почему переменная c
возвращает (в приведенном выше примере) тип Option
вместо типа документа BSON запроса, и как я могу получить требуемый тип, возвращаемый из match
? Или это неправильный путь?