fix reinit
This commit is contained in:
parent
6a34099e17
commit
a8e72efea0
2 changed files with 27 additions and 11 deletions
|
@ -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,
|
||||
|
|
31
src/item.rs
31
src/item.rs
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue