Packages
gleam_mongo
0.1.2
0.18.1
retired
0.18.0
retired
0.17.0
retired
0.16.0
retired
0.15.1
retired
0.15.0
retired
0.14.0
retired
0.13.0
retired
0.12.0
retired
0.11.0
retired
0.10.0
retired
0.9.0
retired
0.8.0
retired
0.7.0
retired
0.6.0
retired
0.5.0
retired
0.4.0
retired
0.3.0
0.2.0
retired
0.1.3
retired
0.1.2
retired
0.1.1
retired
0.1.0
retired
A mongodb driver for gleam
Retired package: Renamed - Republished as mungo
Current section
Files
Jump to
Current section
Files
gleam_mongo
README.md
README.md
# gleam_mongo
A mongodb driver for gleam
## Quick start
```sh
gleam shell # Run an Erlang shell
```
## Installation
```sh
gleam add gleam_mongo
```
## Roadmap
- [x] support basic mongodb commands
- [x] support aggregation
- [ ] support authentication
- [ ] support connection strings
- [ ] support tls
- [ ] support other mongodb commands
- [ ] support connection pooling
- [ ] support clusters
## Usage
### Connection
```gleam
import mongo
import bson/types
import mongo/utils
import mongo/aggregation.{aggregate, exec, lookup, match}
pub fn main() {
assert Ok(conn) = mongo.connect("127.0.0.1", 27017)
let db =
conn
|> mongo.db("app_db")
let collection =
db
|> mongo.collection("users")
collection
|> mongo.insert_one(types.Document([
#("first_name", types.Str("Steve")),
#("last_name", types.Str("Wozniak")),
]))
collection
|> mongo.update_one(
types.Document([#("first_name", types.Str("Dennis"))]),
types.Document([
#("$set", types.Document([#("last_name", types.Str("Ritchie"))])),
]),
[utils.Upsert(True)],
)
collection
|> aggregate()
|> match(types.Document([#("first_name", types.Str("Dennis"))]))
|> lookup(
from: "technologies",
local_field: "known_for",
foreign_field: "name",
alias: "known_for",
)
|> exec()
}
```