8个版本

0.3.0-alpha.12019年9月29日
0.2.2 2018年9月4日
0.1.4 2018年5月28日
0.1.1 2018年3月27日

#1456 in 数据库接口

MIT 协议

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);
    }
}

依赖项