3个版本 (破坏性更新)

使用旧的Rust 2015

0.3.0 2018年2月20日
0.2.0 2017年1月7日
0.1.0 2017年1月1日

数据库接口中排名#2219

MIT许可证

28KB
468 代码行

Oplog 构建状态

Rust库,用于迭代MongoDB副本集oplog

当前版本 0.3.0
支持的Rust版本 1.14

安装

通过在您的Cargo.toml中添加以下内容来安装Oplog

oplog = "0.3.0"

用法

#[macro_use]
extern crate bson;
extern crate mongodb;
extern crate oplog;

use mongodb::{Client, ThreadedClient};
use oplog::{Operation, Oplog, OplogBuilder};

fn main() {
    let client = Client::connect("localhost", 27017).expect("Failed to connect to MongoDB.");

    if let Ok(oplog) = Oplog::new(&client) {
        for operation in oplog {
            match operation {
                Operation::Noop { timestamp, .. } => println!("No-op at {}", timestamp),
                Operation::Insert { timestamp, .. } => println!("Insert at {}", timestamp),
                Operation::Update { timestamp, .. } => println!("Update at {}", timestamp),
                Operation::Delete { timestamp, .. } => println!("Delete at {}", timestamp),
                Operation::Command { timestamp, .. } => println!("Command at {}", timestamp),
                Operation::ApplyOps { timestamp, .. } => println!("ApplyOps at {}", timestamp),
            }
        }
    }

    // Or, if you want to filter out certain operations:

    if let Ok(oplog) = OplogBuilder::new(&client).filter(Some(doc! { "op" => "i" })).build() {
        for insert in oplog {
            println!("{}", insert);
        }
    }
}

文档

完整的API文档可在http://mudge.name/oplog找到

参考资料

还要感谢Ryman在过程中提供的帮助。

许可证

版权© 2016-2018 Paul Mucur。

在MIT许可证下分发。

依赖关系

~15MB
~272K SLoC