prax-mongodb
MongoDB query engine for Prax ORM.
Overview
prax-mongodb provides an async MongoDB backend using the official mongodb Rust driver with built-in connection pooling.
Features
- Async query execution with Tokio
- Built-in connection pooling
- Document serialization via BSON/serde
- Filter builder for type-safe queries
- Aggregation pipeline support
- Change streams support
- Transactions and sessions
Usage
use ;
async
Document Mapping
Models are mapped to MongoDB documents using serde:
use ;
use ObjectId;
Filter Builder
Build type-safe MongoDB queries:
use FilterBuilder;
// Simple equality
let filter = new
.eq
.build;
// Comparisons
let filter = new
.gte
.lt
.build;
// Array operations
let filter = new
.in_array
.all
.build;
// Text search
let filter = new
.text_search
.build;
// Logical operators
let filter = new
.or
.build;
// Geospatial
let filter = new
.near
.build;
Aggregation Pipelines
Build aggregation pipelines with helpers:
use *;
let pipeline = vec!;
let results = collection.aggregate.await?;
Configuration
use ;
use Duration;
let config = builder
.uri
.database
.app_name
.max_pool_size
.min_pool_size
.connect_timeout
.read_preference
.write_concern
.retry_writes
.compressors
.build?;
MongoDB Atlas
For MongoDB Atlas, use the connection string from Atlas:
let client = builder
.uri
.database
.build
.await?;
Transactions
Use sessions for multi-document transactions:
let mut session = client.start_session.await?;
session.start_transaction.await?;
// Perform operations within transaction
users.insert_one_with_session.await?;
orders.insert_one_with_session.await?;
session.commit_transaction.await?;
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
MongoDB query engine for Prax ORM.
Overview
prax-mongodb provides an async MongoDB backend using the official mongodb Rust driver with built-in connection pooling.
Features
- Async query execution with Tokio
- Built-in connection pooling
- Document serialization via BSON/serde
- Filter builder for type-safe queries
- Aggregation pipeline support
- Change streams support
- Transactions and sessions
Usage
use ;
async
Document Mapping
Models are mapped to MongoDB documents using serde:
use ;
use ObjectId;
Filter Builder
Build type-safe MongoDB queries:
use FilterBuilder;
// Simple equality
let filter = new
.eq
.build;
// Comparisons
let filter = new
.gte
.lt
.build;
// Array operations
let filter = new
.in_array
.all
.build;
// Text search
let filter = new
.text_search
.build;
// Logical operators
let filter = new
.or
.build;
// Geospatial
let filter = new
.near
.build;
Aggregation Pipelines
Build aggregation pipelines with helpers:
use *;
let pipeline = vec!;
let results = collection.aggregate.await?;
Configuration
use ;
use Duration;
let config = builder
.uri
.database
.app_name
.max_pool_size
.min_pool_size
.connect_timeout
.read_preference
.write_concern
.retry_writes
.compressors
.build?;
MongoDB Atlas
For MongoDB Atlas, use the connection string from Atlas:
let client = builder
.uri
.database
.build
.await?;
Transactions
Use sessions for multi-document transactions:
let mut session = client.start_session.await?;
session.start_transaction.await?;
// Perform operations within transaction
users.insert_one_with_session.await?;
orders.insert_one_with_session.await?;
session.commit_transaction.await?;
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
MongoDB query engine for Prax ORM.
Overview
prax-mongodb provides an async MongoDB backend using the official mongodb Rust driver with built-in connection pooling.
Features
- Async query execution with Tokio
- Built-in connection pooling
- Document serialization via BSON/serde
- Filter builder for type-safe queries
- Aggregation pipeline support
- Change streams support
- Transactions and sessions
Usage
use ;
async
Document Mapping
Models are mapped to MongoDB documents using serde:
use ;
use ObjectId;
Filter Builder
Build type-safe MongoDB queries:
use FilterBuilder;
// Simple equality
let filter = new
.eq
.build;
// Comparisons
let filter = new
.gte
.lt
.build;
// Array operations
let filter = new
.in_array
.all
.build;
// Text search
let filter = new
.text_search
.build;
// Logical operators
let filter = new
.or
.build;
// Geospatial
let filter = new
.near
.build;
Aggregation Pipelines
Build aggregation pipelines with helpers:
use *;
let pipeline = vec!;
let results = collection.aggregate.await?;
Configuration
use ;
use Duration;
let config = builder
.uri
.database
.app_name
.max_pool_size
.min_pool_size
.connect_timeout
.read_preference
.write_concern
.retry_writes
.compressors
.build?;
MongoDB Atlas
For MongoDB Atlas, use the connection string from Atlas:
let client = builder
.uri
.database
.build
.await?;
Transactions
Use sessions for multi-document transactions:
let mut session = client.start_session.await?;
session.start_transaction.await?;
// Perform operations within transaction
users.insert_one_with_session.await?;
orders.insert_one_with_session.await?;
session.commit_transaction.await?;
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
MongoDB query engine for Prax ORM.
Overview
prax-mongodb provides an async MongoDB backend using the official mongodb Rust driver with built-in connection pooling.
Features
- Async query execution with Tokio
- Built-in connection pooling
- Document serialization via BSON/serde
- Filter builder for type-safe queries
- Aggregation pipeline support
- Change streams support
- Transactions and sessions
Usage
use ;
async
Document Mapping
Models are mapped to MongoDB documents using serde:
use ;
use ObjectId;
Filter Builder
Build type-safe MongoDB queries:
use FilterBuilder;
// Simple equality
let filter = new
.eq
.build;
// Comparisons
let filter = new
.gte
.lt
.build;
// Array operations
let filter = new
.in_array
.all
.build;
// Text search
let filter = new
.text_search
.build;
// Logical operators
let filter = new
.or
.build;
// Geospatial
let filter = new
.near
.build;
Aggregation Pipelines
Build aggregation pipelines with helpers:
use *;
let pipeline = vec!;
let results = collection.aggregate.await?;
Configuration
use ;
use Duration;
let config = builder
.uri
.database
.app_name
.max_pool_size
.min_pool_size
.connect_timeout
.read_preference
.write_concern
.retry_writes
.compressors
.build?;
MongoDB Atlas
For MongoDB Atlas, use the connection string from Atlas:
let client = builder
.uri
.database
.build
.await?;
Transactions
Use sessions for multi-document transactions:
let mut session = client.start_session.await?;
session.start_transaction.await?;
// Perform operations within transaction
users.insert_one_with_session.await?;
orders.insert_one_with_session.await?;
session.commit_transaction.await?;
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.