102个版本 (2个稳定版)
新 1.0.1 | 2024年8月16日 |
---|---|
1.0.0 | 2024年6月27日 |
0.5.6 | 2024年5月18日 |
0.5.4 | 2024年1月6日 |
0.0.11 | 2021年11月19日 |
在 编码 中排名第378
每月下载量 207次
用于 2 crates
18KB
582 代码行
mungos
受npm包mongoose的启发,此crate包含一个名为Mungos
的结构体,它是mongodb客户端的包装,包含一些额外的查询和功能
使用方法
#[derive(Serialize, Deserialize, Debug)]
struct TestDoc {
timestamp: i64,
name: String,
#[serde(default)]
description: String,
}
let mungos = mungos::Mungos::new(uri, app_name, Duration::from_secs(3), None).await.unwrap();
let coll = mungos.collection::<TestDoc>("test_db", "test_coll");
let items: Vec<TestDoc> = coll
.get_most_recent(
"timestamp",
10,
0,
None,
mungos::Projection("timestamp name")
)
.await
.unwrap();
println!("{items:#?}"); // prints the 10 most recent docs by timestamp
从环境初始化
# specify full uri directly
MONGO_URI=mongodb://username:password@localhost:27017
## or
# specify uri parts
MONGO_ADDRESS=localhost:27017
MONGO_USERNAME=username
MONGO_PASSWORD=password
# ---------------------
# specify other options
MONGO_APP_NAME=tester # optional. default is 'mungos'
MONGO_TIMEOUT_SECS=30 # optional. default is '3'
MONGO_COMPRESSORS=snappy,zstd(10),zlib(8) # optional. defaults to None
let mungos = mungos::Mungos::new_from_env().await.unwrap();
let coll = mungos.collection::<TestDoc>("test_db", "test_coll");
let items = coll.get_some(None, None).await.unwrap(); // Vec<TestDoc>
依赖关系
~15–25MB
~387K SLoC