pub mod builder;
pub mod impls;
pub(crate) mod join;
pub mod pipeline;
pub mod render;
use crate::condition::MongoCondition;
pub(crate) use join::{JoinColumn, JoinHop, join_alias};
#[derive(Debug, Clone, Default)]
#[non_exhaustive]
pub struct MongoSelect {
pub collection: Option<String>,
pub(crate) pre_stages: Vec<bson::Document>,
pub(crate) joins: Vec<JoinColumn>,
pub fields: Vec<String>,
pub conditions: Vec<MongoCondition>,
pub sort: Vec<(String, i32)>,
pub group_by: Vec<String>,
pub distinct: bool,
pub limit: Option<i64>,
pub skip: Option<i64>,
}
impl MongoSelect {
pub fn new() -> Self {
Self::default()
}
}