The embedded interpreter is used in all sorts of different ways, including for Map/Reduce, db.eval, and $where clauses. One nice feature supported by MongoDB is the ability to store JS functions on the server.
M.D.: We wanted the shell to be a full programming environment, a “real” programming language. That makes a lot of administrative tasks much easier. It also allows us to use it for automated testing and a wide variety of other use cases.
Q: What is one cool thing it can do?
M.D.: The shell can do a lot of cool things – it’s a full MongoDB client! It can be used to perform any of the operations supported by any of the other MongoDB rivers, and you can do them from a nice REPL. This makes it incredibly easy to use for administration and just playing around with MongoDB.
M.D.: Yeah I think those are comparable. The really nice thing about the shell compared to other DB shells is that it is really a fully functioning programming language. You can do all sorts of interesting things by leveraging that fact – you can write real programs to do administrative tasks.
Update: Jan Lehnardt was quick to point me to a CouchDB-based URL shortner on ☞ GitHub.
Update 2: Mathias Meyer shared with us ☞ Relink: a solution built on top of Redis with Sinatra
Update 3: Aaron pointed out ☞ little, another solution using Redis and Node.js
I’m pretty sure there are many more such projects so please post a link to the project in the comment section and I’ll update the post.
Chris Anderson (@jchris) has shared a 10min video demoing Taskr, a lightweight task tracker that uses some new plugins (Evently and Pathbinder) available through CouchApp. The video is pretty fun, unfortunately the fonts are too small to see the code, so you’ll have to check out the ☞ GitHub code to follow along.
And hello Chris from MyNoSQL!