1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use crate::Collection;
use mongodb::{
bson::{doc, oid::ObjectId, to_bson},
error::Result,
};
use serde::Serialize;
use std::str::FromStr;
impl<T: Serialize> Collection<T> {
pub async fn update_one(&self, id: &str, item: T) -> Result<T> {
let filter = doc! { "_id": ObjectId::from_str(id).unwrap() };
let update = doc! { "$set": to_bson(&item)? };
self.collection.update_one(filter, update, None).await?;
Ok(item)
}
}