mungos

inspired by the mongoose npm package, this crate contains the Mungos struct, a wrapper around the mongodb client containing some additional queries and functionality

usage

```rust

[derive(Serialize, Deserialize, Debug)]

struct TestDoc { timestamp: i64, name: String, #[serde(default)] description: String, }

let mungos = mungos::Mungos::new(uri, appname, Duration::fromsecs(3), None).await.unwrap(); let coll = mungos.collection::("testdb", "testcoll");

let items: Vec = coll .getmostrecent( "timestamp", 10, 0, None, mungos::Projection("timestamp name") ) .await .unwrap();

println!("{items:#?}"); // prints the 10 most recent docs by timestamp ```

initializing from environment

```

specify full uri directly

MONGO_URI=mongodb://username:password@localhost:27017

or

specify uri parts

MONGOADDRESS=localhost:27017 MONGOUSERNAME=username MONGO_PASSWORD=password

---------------------

specify other options

MONGOAPPNAME=tester # optional. default is 'mungos' MONGOTIMEOUTSECS=30 # optional. default is '3' MONGO_COMPRESSORS=snappy,zstd(10),zlib(8) # optional. defaults to None ```

```rust let mungos = mungos::Mungos::newfromenv().await.unwrap(); let coll = mungos.collection::("testdb", "testcoll");

let items = coll.get_some(None, None).await.unwrap(); // Vec ```