#语法树 #AST #MongoDB #语言模型 #Node.js #抽象 #查询

mongodb-language-model

解析MongoDB查询语言并返回抽象语法树

6个版本

0.1.6 2022年7月18日
0.1.5 2022年7月17日

#2402数据库接口

Apache-2.0

37KB
996

mongodb-language-model

CI workflow

解析MongoDB查询并创建带词性标注的抽象语法树(AST)。目前仅支持严格扩展JSON语法,且并非所有情况都能正确创建,某些情况可能完全缺失。

此库基于Thomas Rueckstiess在mongodb-language-model仓库中之前的Node.js工作。它已从Node.js和PEGjs迁移到Rust和pest.rs

用法

模块公开了一个函数 parse(query: &str) -> Result<Expression, Error<Rule>>,它接受一个Mongo JSON查询字符串并返回解析后的AST结构。


lib.rs:

mongodb-language-model 是一个库,使用 pest.rs 解析MongoDB语言并返回抽象语法树。

示例

use mongodb_language_model::*;

let input = r#"{ "$or": [ { "status": "A" }, { "qty": { "$lt": 30 } }] }"#;
let ast = parse(input).unwrap();

依赖项

~3–4.5MB
~87K SLoC