mongo.nvim: A NeoVim frontend for mongosh.
MongoDB Compass is a great tool, but when you want to edit a large document, it really begins to slow down, and on top of that, a Vimmer really begins to miss all the editing capabilities not found in Compass‘ document editor. Enter this plugin: I wanted something that would let me:
- Write MongoDB queries and execute them from Vim
- Edit documents with ease and write them back to the database simply
This plugin does just that by acting as a frontend for the excellent mongosh. Send mongosh scripts to be executed with :Mongoquery and have the results displayed in a temporary unlisted buffer. Generate the appropriate „replaceOne(…)“ script for easy single-document editing with the :Mongoedit --collection=... --id=...command.
Commands
:Mongoconnect [--host=localhost:27017] --db=some_db– this is a convenience for „caching“ a connection string globally so that you don’t have to repeatedly set the DB you want to connect to for each query you run: use this when you need to connect to a specific DB across several repeated calls:Mongocollections– open a buffer that lists the collections in the DB we are currently connected to. Press<Enter>on a collection to open a stub-query.:Mongoquery db.some_db.find({}):Mongoquery– use the current buffer as the Mongo query:'<,'>Mongoquery– use the current selection as the Mongo query:Mongoexecute– like:Mongoquerybut do not display the result set in a buffer: just print the response to Vim’s messages:Mongoedit --collection=some_collection --id=SOME_ID– a shorthand for finding a given document, and generating adb.*.replaceOne(...)query so that the document can easily be edited (by a subsequent call to:Mongoexecute):Mongoedit --coll=some_collection --id=SOME_ID– shorthand option (--collinstead of--collection)