8个版本
0.3.0-alpha.1 | 2019年9月29日 |
---|---|
0.2.2 | 2018年9月4日 |
0.1.4 | 2018年5月28日 |
0.1.1 | 2018年3月27日 |
#1456 in 数据库接口
3.5MB
26K SLoC
mongo-rust-driver
基于 libmongoc 的MongoDB Rust驱动程序。
在此之前,我原本打算完全用Rust编写这个驱动程序。由于时间和精力的限制,我不得不放弃这个决定。幸运的是,libmongoc足够好,并且有官方支持。因此,从v0.3版本开始,这个驱动程序基于libmongoc构建。这个驱动程序通过封装libmongoc提供了两套API。一套更接近libmongoc,几乎直接将libmongoc API转换为Rust,称为核心。另一套基于核心,是更高层的Rust风格的API。通常,你可以使用这组API,我已经为您屏蔽了很多细节,客户端、数据库和集合已经线程安全,还有一个有用的Bson库。如果你不喜欢这组API,可以直接使用核心,但你需要阅读libmongoc文档,注意很多细节。
安装
要使用这个库,你首先需要编译和安装libmongoc。
$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.14.0/mongo-c-driver-1.14.0.tar.gz
$ tar xzf mongo-c-driver-1.14.0.tar.gz
$ cd mongo-c-driver-1.14.0
$ mkdir cmake-build
$ cd cmake-build
$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..
$ make
$ sudo make install
你可以查看: http://mongoc.org/libmongoc/current/installing.html
遗憾的是,目前仅部分支持Linux系统。由于我没有其他系统的电脑,我还没有尝试过。如果你能,你可以修改 build.rs
来在你的系统上编译。欢迎提交PR。
然后,你需要将其添加到 Cargo.toml
文件中
mongors = "0.3"
示例
use mongors::*;
use bsonrs::doc;
fn main() {
let client = Mongo::new("mongodb://127.0.0.1:27017/?maxpoolsize=10").unwrap();
let db = client.db("test");
let collection = db.collection("test");
let mut cursor = collection.find(doc!{}, None, None).unwrap();
for doc in &mut cursor {
println!("{:?}", doc);
}
}