Mongo Database Management
If you're not opposed to running a Ruby utility, Genghis is a classic: http://genghisapp.com/
But for scalable production use, get yourself to MongoHQ.
Also, the Mongo Monitoring Service, from 10Gen, the makers of Mongo:
MongoClient is written in Meteor, Completely Free, Open Source And Cross-Platform.
RoboMongo Native cross-platform MongoDB management tool
Accessing Mongo Log Files on a Local Meteor Instance
They're not easily accessible. If you run the 'meteor bundle' command, you can generate a tar.gz file, and then run your app manually. Doing that, you should be able to access the mongo logs... probably in the .meteor/db directory. If you really need to access mongodb log files, set up a regular mongodb instance, and then connect Meteor to an external mongo instance, by setting the MONGO_URL environment variable:
Once that's done, you should be able to access logs in the usual places...
Analyzing An Inherited Database
There's two great utilities for black-box analysis of databases. First is variety.js, which will give you a high-level overview. The second is schema.js, which will let you dig into the collections for more detail on the individual fields. When inheriting a production Mongo database, these two utilities can help you make sense of what's going on and how the collections and documents are structured.
Compact a Mongo Database on an Ubuntu Box
Preallocation. Mongo sets aside disk-space in empty containers, so when the time comes to write something to disk, it doesn't have to shuffle bits out of the way first. It does so by a doubling algorithm, always doubling the amount of disk space preallocated until it reaches 2GB; and then each prealloc file from thereon is 2GB. Once data is preallocated, it doesn't unallocate unless you specifically tell it to. So observable MongoDB space usage tends to go up automatically, but not down.
Connect Remotely to a Mongo Instance on *.meteor.com
Did you know about the
--url flag? Very handy.
Connect To A Database on *.meteorapp.com
The --url flag can be tricky to use. There is a 60 second window to authenticate, and then the username/password randomly resets. So be sure to have robomongo open and ready to configure a new connection when you run the command.
Copying Data Between Staging and Local Databases
Mongo supports database-to-database copying, which is useful if you have large databases on a staging database that you want to copy into a local development instance.
Download a Database from *.meteor.com
Same thing as before, but you have to copy the info into the mongodump command. You have to run the following commands rediculously fast, and it requires hand/eye coordination. Be warned! This is a rediculously hacky! But fun! Think of it as a video game! :D
Export a Collection to JSON
Run meteor, open another terminal window, and run the following command.
Export Data from local Meteor development instance?
This command will create a /dump directory, and store each collection in a separate BSON blob file. This is the best way to backup or transfer databases between systems.
Import a JSON File into Meteor
Importing into a default Meteor instance is fairly easy. Note that you can add a --jsonArray option if your json file is exported as an array from another system.
Reset a Replica Set
Delete the local database files. Just exit the Mongo shell, navigate to the /dbpath (wherever you set it up), and delete the files within that directory.
Restore Data from a Dumpfile
The analog to the
meteordump command is
meteorrestore. You can do a partial import by selecting the specific collection to import. Particularly useful after running a drop command.
Rotate Log Files on an Ubuntu Box
Log files can be viewed with the following command...
But to set up log-file rotation, you'll need to do the following...