我正在尝试通过 Websocktes 在 c# 和 Rust 之间发送 Bson 对象,使用此代码将 byte[] 转换为 Rust 中的 mongodb::bson::Document。
if msg.is_binary() {
let mut bin = std:::io::Cursor::new(msg.into_data());
let doc = mongodb::bson::Document::from_reader(&mut bin);
}
这适用于来自 c# MongoDB.Bson.ToBson() 的 byte[]
但我想知道如何做相反的事情。 我如何将 mongodb::bson::Document 转换为 Vec 字节数组,以便我可以解析它,例如:C# 中的 BsonDocument.ReadFrom()。
答案是:
let doc = doc! {"key": "value"};
let mut byte_array : Vec<u8> = vec![];
doc.to_writer(&mut byte_array);
/// byte_array is your BsonDocument as Vec<u8>
代表提问者发表