Created code to upload packets to a mongo instance. Pretty boring but just practising how to use the mongo driver

This commit is contained in:
Luke Else 2023-05-22 10:42:07 +01:00
parent 898613a56a
commit ce6e443c41
4 changed files with 72 additions and 0 deletions

11
Cargo.toml Normal file
View File

@ -0,0 +1,11 @@
[package]
name = "rustic_mongo"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
mongodb = "2.5.0"
serde = "1.0.163"
tokio = "1.28.1"

35
src/main.rs Normal file
View File

@ -0,0 +1,35 @@
use core::panic;
use mongodb::{Client, options::{ClientOptions, Credential}};
mod packet;
use packet::Packet;
use std::time;
#[tokio::main]
async fn main() {
// Parse a connection string into an options struct.
let mut client_options = ClientOptions::parse("mongodb://localhost:27017").await.unwrap();
// Manually set an option.
client_options.app_name = Some("My App".to_string());
client_options.credential = Some(Credential::default());
client_options.credential.as_mut().unwrap().username = Some(std::env::var("mongo_username").unwrap());
client_options.credential.as_mut().unwrap().password = Some(std::env::var("mongo_password").unwrap());
// Get a handle to the deployment.
let client = Client::with_options(client_options).unwrap();
let db = client.database("test");
match db.create_collection("test", None).await {
Err(_) => panic!("ERROR: incorrect usage"),
_ => {}
}
let collection = db.collection::<Packet>("test");
loop {
collection.insert_one(Packet{
time: time::SystemTime::now(),
text: format!("Current Unix time: {:?}", time::SystemTime::now().duration_since(time::UNIX_EPOCH).unwrap())
}, None).await.unwrap();
}
}

7
src/packet.rs Normal file
View File

@ -0,0 +1,7 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct Packet {
pub time: std::time::SystemTime,
pub text: String
}

19
src/test.json Normal file
View File

@ -0,0 +1,19 @@
{
"id": 1,
"first_name": "Tom",
"last_name": "Cruise",
"photo": "https://jsonformatter.org/img/tom-cruise.jpg"
},
{
"id": 2,
"first_name": "Maria",
"last_name": "Sharapova",
"photo": "https://jsonformatter.org/img/Maria-Sharapova.jpg
"
},
{
"id": 3,
"first_name": "Robert",
"last_name": "Downey Jr",
"photo": "https://jsonformatter.org/img/Robert-Downey-Jr.jpg"
}