Mongory, let you query everywhere!
這是一個從 Ruby JSON 過濾器開始,逐步演進為跨語言支援、擁有 C 核心的通用查詢引擎的 side project。
在這 30 天內,我會完整分享 Mongory 的開發過程:從 AST 設計、matcher 實作、效能瓶頸,到 C 擴充、multi-platform gem 打包,以及 Go/Python/JS 的橋接規劃。
喜歡從「解決痛點」出發、一路打怪成長的你,不妨一起來看這趟技術旅程。
為什麼要有 Mongory? 一開始,來自筆者工作上的需求:把條件寫在 S3 上的 file,應用程式動態讀取,決定要不要執行某些動作 但問題在於「如何規劃條件...
問題背景 一開始的任務只有一句話:在 S3 放一份可隨時修改的 file,應用程式讀取後「照條件做事」筆者我很自然就想:那我用 functional progr...
把條件「長成」一棵樹 Day 2 我們講解了「為什麼要有 query engine」今天開始動手拆解它的骨幹:AST(抽象語法樹)與 Matcher tree重...
延續 Day 3 的 Eq/Field/And,本篇把日常最常見、也是最容易出錯的進階運算子一次講清楚:$gt、$gte、$lt、$lte、$in、$nin、$...
單子條件解包(unwrap)是在建構 matcher tree 時,主動移除「只有一個子節點的聚合器」等多餘包裝,讓呼叫深度更淺、explain 更直觀、效能更...
其實筆者在開始開發 Mongory 的時候,大約是 2025 年四月。 那時 AI 已有,但還沒火紅。直到 Threads 上開始流行「宮崎駿風格」的 AI 生...
在前幾篇,讀者已經用 Mongory 的 matcher tree 跑過一輪今天把重點拉回到「日常可用的 API 與整合體驗」:Query builder 鏈式...