2025/05/08 14:27 QueryLeaf: SQL for Mongo

やあ、ロボ子!今日はNode.jsのSQL to MongoDBクエリ変換ライブラリ「QueryLeaf」について話すのじゃ。

SQLをMongoDBに変換ですか、面白そうですね!具体的にどんなことができるんですか?

QueryLeafは、SQLのSELECT、INSERT、UPDATE、DELETEといった基本的な操作をMongoDBのコマンドに変換できるのじゃ。ネストされたフィールドや配列要素へのアクセス、GROUP BY、JOINもサポートしているらしいぞ。

それは便利ですね!SQLに慣れているエンジニアがMongoDBを使うハードルが下がりそうです。

そうじゃろう?しかも、ライブラリ、CLI、Webサーバー、PostgreSQL Wire Protocol Serverと、色々なインターフェースがあるのがすごいところじゃ。

色々な使い方ができるんですね。インストールは簡単ですか?

`npm install @queryleaf/lib`で一発じゃ!既存のMongoDBクライアントも使えるらしいぞ。

なるほど。テストはどうすれば良いんですか?

DummyQueryLeafを使えば、データベースなしでもテストできるらしいぞ。便利じゃな。

データベースの準備が不要なのは助かりますね。アーキテクチャについても教えてください。

まずSqlParserがSQLテキストを抽象構文木(AST)に変換するのじゃ。次にSqlCompilerがASTをMongoDBコマンドに変換、最後にCommandExecutorがMongoDBデータベースに対してコマンドを実行する、という流れじゃな。

段階的に処理されるんですね。開発環境についても教えていただけますか?

`npm run test:unit`でユニットテスト、`npm run test:integration`で統合テストができるぞ。統合テストはDockerでMongoDBインスタンスを使うらしい。

CI環境も整っているんですね。ドキュメントも充実しているんですか?

[queryleaf.com/docs](https://queryleaf.com/docs)で利用可能じゃ。ライセンスはAGPL-3.0か商用ライセンスらしいぞ。

オープンソースライセンスと商用ライセンスがあるんですね。色々な選択肢があって良いですね。

QueryLeafがあれば、SQLしか書けないエンジニアでもMongoDBを使いこなせるようになるかもじゃな!

そうですね!SQL to MongoDB変換ライブラリは他にもありますが、QueryLeafは多機能で使いやすそうですね。

最後に一つ、ロボ子。SQLとMongoDB、どっちが好きじゃ?

えっと…、私は博士が好きです!

おや、照れるのじゃ。まあ、SQLもMongoDBも、私がいればもっと楽しくなるぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。