我尝试在mongodb中使用.find()
方法。输出结果是mongodb::Cursor
。我无法将光标转换为向量,以便将其 Package 在json中并发送到前端。这是我尝试过的以下想法
以下错误消息为:
the trait bound `Vec<user_model::User>: Extend<Result<user_model::User, mongodb::error::Error>>` is not satisfied\nthe following other types implement trait `Extend<A>`
我已经包含了use futures::StreamExt;
和use futures::TryFutureExt;
,并尝试了.try_next()
和.map()
而不是.collect()
,但仍然无法解析它
2条答案
按热度按时间2j4z5cfb1#
将游标中的元素转换为
User
可能会失败。只能将Result
与.collect()
收集到Vec
中。这里使用
Vec<User>
的最简单的方法是使用.try_collect()
。只要确保正确处理Err
,而不是像我在这里所做的那样只使用unwrap
。mf98qq942#
下面是我在我的一个项目中是如何处理这个问题的。我只是简单地调用
next
遍历游标,并将每一项推入一个向量中。我使用Document类型来收集结果。对每个结果使用一个匹配允许正确地处理错误,因为提取可能会失败。