#mongodb #rust #bson #actix-web
#mongodb #Ржавчина #бсон #actix-web
Вопрос:
У меня возникла очень странная проблема при попытке сохранить данные в Mongodb с помощью драйвера Rust. Это моя структура
#[derive(Deserialize, Serialize, Debug)]
struct Info {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
id: Option<bson::oid::ObjectId>,
name: String,
created_at: i64,
updated_at: i64,
}
И это моя функция обработчика маршрута actix
async fn post_request(info: web::Json<Info>, data: web::Data<State>) -> impl Responder {
let name: amp;str = amp;info.name;
let document = Info {
id: None,
name: name.to_string(),
created_at: Utc::now().timestamp_millis(),
updated_at: Utc::now().timestamp_millis(),
};
// Convert to a Bson instance:
let serialized_doc = bson::to_bson(amp;document).unwrap();
let doc = serialized_doc.as_document().unwrap();
let collection = data.client.database("test1").collection("users");
let result = collection.insert_one(doc.to_owned(), None).await.unwrap();
HttpResponse::Ok().json(result).await
}
Я получаю Utc
структуру по chrono
ящику.
Когда я пытаюсь сохранить данные в MongoDB, нажав на маршрут, они не сохраняются. Но, как ни странно, когда я комментирую created_at
и updated_at
в структуре и обработчике, оно сохраняется. Если я не использую структуры и пытаюсь сохранить его как необработанный документ, сохраняя created_at
и updated_at
в переменных, то он также сохраняется, но не с помощью структур. Я новичок в rust, так что, возможно, я делаю что-то не так. Пожалуйста, помогите
Комментарии:
1. Попробуй
created_at: new Date(Utc::now().timestamp_millis())
2. В чем ошибка, когда не удается сохранить?
3. @CodesInChaos он не выдает никаких ошибок. Это просто не работает.