fix reinit

This commit is contained in:
JMARyA 2024-05-03 18:45:23 +02:00
parent 6a34099e17
commit a8e72efea0
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
2 changed files with 27 additions and 11 deletions

View file

@ -30,6 +30,13 @@ macro_rules! get_mongo {
};
}
#[macro_export]
macro_rules! id_of {
($id:expr) => {
doc! { "_id": $id}
};
}
pub struct ItemDB {
index: mdq::Index,
mongodb: mongodb::Client,

View file

@ -1,6 +1,6 @@
use std::collections::HashSet;
use crate::collect_results;
use crate::{collect_results, id_of};
use futures::TryStreamExt;
use mongodb::{bson::doc, ClientSession, Collection};
@ -60,17 +60,26 @@ impl ItemEntry {
log::info!("Adding item {} to DB", self.name);
let items: Collection<mongodb::bson::Document> =
mongodb.database("cdb").collection("items");
items
.insert_one(
mongodb::bson::doc! {
"_id": self.name.clone(),
"name": self.name.clone(),
"category": self.category.clone()
},
None,
)
let doc = mongodb::bson::doc! {
"_id": self.name.clone(),
"name": self.name.clone(),
"category": self.category.clone()
};
if items
.find_one(id_of!(&self.name), None)
.await
.unwrap();
.unwrap()
.is_none()
{
items.insert_one(doc, None).await.unwrap();
} else {
items
.find_one_and_update(id_of!(&self.name), doc, None)
.await
.unwrap();
}
}
}