INNER CODE UNIT · Rust

parse_value_operator

fcoury/oxide · src/parser/mod.rs:192

fn parse_value_operator(value_oper: ValueOperator, field: String) -> Result<String> {
    let operator = match value_oper.operator.as_str() {
        "$lt" | "$lte" | "$gt" | "$gte" | "$ne" | "$eq" => {
            translate_operator(value_oper.operator.as_str())
        }
        "$regex" => "~",
        "$exists" => {
            let source = "_jsonb".to_string();
            let value = value_oper.value.value;

            let (field, target) = if field.contains(".") {
                let parts = field.split(".").collect::<Vec<&str>>();
                let field = parts[parts.len() - 1].to_string();
                let target = format!("_jsonb->'{}'", parts[0..parts.len() - 1].join("'->'"));
                (field, target)
            } else {
                (field, source)
            };

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…