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

Download history 1/week @ 2024-05-05 275/week @ 2024-05-12 83/week @ 2024-05-19 20/week @ 2024-05-26 28/week @ 2024-06-02 45/week @ 2024-06-09 19/week @ 2024-06-16 143/week @ 2024-06-23 29/week @ 2024-06-30 1/week @ 2024-07-07 7/week @ 2024-07-14 31/week @ 2024-07-28 36/week @ 2024-08-04 139/week @ 2024-08-11

每月下载量 207次
用于 2 crates

MIT 许可证

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