MongoDB не сохраняет документ при инициализации временных меток в struct

#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 он не выдает никаких ошибок. Это просто не работает.