I will be writing code to access my self hosted NoSQL server, and the normal usage will be to treat it as a fancy file system. To do data imports, and similar administration functions, a management tool is faster. For MySQL (which is also self hosted here), I generally use the MySQL shell, so I can check my changes into my project. SQL is just another language, that I need to be able to edit professionally. When I am contributing to existing projects where OO is used properly, I am not using much SQL, as everything is a model. At this point GUI tools are better again. In this resource, I am writing down my research, under the theory that this will speed up other people.

Tools to use the MongoDB.

  • First most basic, PHP interpreter level access 1 with the PHP API docs 2. No comments really, this is how my code will interface Mongo, unless I find a PDO driver. Obviously if you are using other languages, read more 3
  • Like the MySQL shell, Mongo has a client shell 4, API 5. It is written in JS, and is executed 6 similar to Node.js. Allowing for the different language, this may be used in exactly the same fashion as sqlplus or mysql. Someone wrote a condensed summary, which fits on 2x A4 sides.
  • MongoDB provides tools 7 similar to mysqldump or sqlldr. If you had a CSV dump from a third party, you would convert it to JSON before importing it. This is quite programmatically simple, alternatively mongoimport 8 9 public implementations are available. For large volumes of data (>100KB), I would solve this outside of a webrowser, as its more efficient. It would be more useful to make BSON 10 mongo bson, as it has a more useful range of types, but again this is very affordable. According to the ES spec, it is legal to use most of utf-8 as a variable name 11 12 (discussion, not spec 13 ), so column headers may be in a third parties locale (so used as variable names in the JSON object). In terms of operational efficiency, converting internal labels to the same language as the developers will lead to better engineering.
  • Integration with Symfony based systems is simple DoctrineMongoDBBundle sfMondongoPlugin or 14. To get Mongo functioning in ZF2, use Doctrine ODM or Shanty. There is a quite mature integration with Cake 15.

It is not my goal to be a MongoDB DBA, but to have a good understanding of a new tool, and be able to use it efficiently. As ever; where someone else has publicly written stuff, I try not to duplicate their work. If you are doing this for non R&D purposes, a host 16 is probably more efficient, as for webservers.

This article is a list of lists, and some commentary. These lists here, are my source for the below tools:

Individual tools

  • mongo3 17
  • futon 4 mongo 18
  • opricot 19 20 the first link doesn't seem to be a valid domain name, but is all over the internet.
  • phpMoAdmin 21
  • mongohub ~ this was linked to the apple store, but apple deny hosting this tool. I extracted 22 23 24 (mac)
  • mongovue 25
  • RockMongo 26
  • Fang of Mongo 27 28
  • JMongoBrowser home page: 29 30
  • MongoExplorer 31
  • MongoHub 32
  • MongoVision 33
  • Meclipse 34
  • Database Master 35
  • mongs 36
  • tag1 37