Skip to content

Joeyscat/open-mongodb-trigger

Repository files navigation

Open MongoDB Trigger

Provides triggers that run outside the database server.

basic arch

Requirements

  • rust
  • protobuf compiler
  • mongodb cluster

Getting start

build

❯ make build
❯ make build-example

start the service

❯ cp service/fixtrues/config.toml ~/.config/mongodb-trigger.toml
❯ cargo run --release -p service
    Finished release [optimized] target(s) in 0.15s
     Running `target/release/service`
2022-11-22T06:36:31.484279Z  INFO service: Listening on 0.0.0.0:6788

access service using CLI

deploy function and create trigger

❯ cp target/release/tri ~/.cargo/bin/
# create a function
❯ tri function create -n function1 -p target/wasm32-wasi/release/example_wasm_rust_event_handler_lib.wasm -t wasm -u 1 -l rust
# create a trigger
❯ tri trigger create -n trigger1 -u 1 -t database -s mongodb://test:test@192.168.50.5:26017/admin -d db1 -c c1 -o insert,delete,update,replace -f <function-id>
# enable a trigger
❯ tri trigger enable <trigger-id>

fire the trigger

make a change of the watched collection and we will see the function is called.

[direct: mongos] db1> db.c1.insertOne({name:1})

[direct: mongos] db1> db.c1.deleteOne({})

Examples

Built On

Documentation