SSブログ

MongoDB 3.6 以降の新しい(それほど新しくない) OPCODE の話 [プログラミング]

以前 mongodb のデーターベースドライバーを書いて https://nakagami.blog.ss-blog.jp/2016-12-08
最終的に TLS接続して CosmosDBに接続できるようにした https://nakagami.blog.ss-blog.jp/2020-10-17

MongoDB 4.x に nmongo から接続できないことには気づいていたが、その原因については調べてなかった。

重い腰を上げて調べてみると、MongoDB 4.4 の mongo shell から MongoDB に接続するときには
Mongo 3.6 からできた OP_MSG と言うオペコードでデータのやりとりをしているようだった。
https://docs.mongodb.com/v3.6/reference/mongodb-wire-protocol/

ここに、日本語の解説があった
http://www.cybergarage.org/memo/mongodb-wire-protocol/

nmongo や、 MongoDB 3.x の mongo shell は、OP_COMMAND, OP_COMMANDREPLY を使っていたのだが、使えなくなったらしい

MongoDB 4.0以降 で使えるようにするためには、OP_MSG を使うしかないようだが、nmongo の拡張では難しい?簡単?
やるなら別のドライバーを書くことになるかなぁ、というあたりまで確認した。
MongoDB が OSS でなくなったこともあり、どうしてもやりたい!という気はしない。
当面はこのまま。
コメント(0) 
共通テーマ:日記・雑感