Как сериализовать поля chrono :: DateTime как ISODate при использовании прототипа драйвера Rust Mongo? - PullRequest
0 голосов
/ 18 апреля 2019

Поля Datetime в структурах сериализуются до String с вместо ISODate с при использовании прототипа драйвера Rust Mongo . Как получить поля для сохранения как ISODate?

use chrono::{DateTime, Utc};
use mongodb::oid::ObjectId;
use mongodb::{
    coll::Collection, db::Database, db::ThreadedDatabase, error::Error, Client, ThreadedClient,
};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Clone, Debug)]
struct Person {
    pub _id: ObjectId,
    pub date: DateTime<Utc>,
}

fn main() {
    let client = Client.with_uri("mongodb://localhost:27017").unwrap();
    let p = Person {
        _id: ObjectId::new().unwrap(),
        date: Utc::now(),
    };
    let document = mongodb::to_bson(p).unwrap().as_document();
    if document.is_some() {
        client
            .db("my_db")
            .collection("mycollection")
            .insert_one(document, None)
            .unwrap();
    }
}

При запросе к БД запись содержит строку даты (в формате ISO); Я ожидал, что это будет ISODate.

...