Install CoffeeScript
sudo npm install -g coffee-script
Install MongoDB driver for Node.JS
sudo npm install -g mongodb
Install shortid if you want Primary key instead of ObjectID.
sudo npm install -g shortid
Link installed modules to local dir
npm link mongodb npm link shortid
Let’s get around to setting up a connection with the Mongo DB database. To work with the database, you first need to create a connection.
mcl = require('mongodb').MongoClient sid = require('shortid') mcl.connect("mongodb://localhost:27017/sandbox", (err, db) -> if !err console.log("We are connected"); db.close() ); # run: coffee fill.coffee
Collections are the equivalent of tables in traditional databases and contain all your documents. A database can have many collections.
In following snippet we are inserting 10 countries in City collection.
mcl = require('mongodb').MongoClient sid = require('shortid') mcl.connect("mongodb://localhost:27017/sandbox", (err, db) -> if !err console.log("We are connected"); City = db.collection('City') City.remove({}) for i in [0..10000] City.insert({_id: sid.generate(), title: "City #{i}", isCapital: false}) db.close() );
There are a couple of things to keep in mind when using the mongodb native driver:
The query function names and their parameters are similar to that of native mongodb commands.
All these query functions take the callback as the last argument. The callback function gives the first argument as error and the second argument as result. Result is actually result/output provided by the mongodb on running these commands. It is similar to what you see if you had run these queries in the mongodb shell.
Updating the documents in MongoDB.
City.update({title: 'City 7'}, {$set: {isCapital: true}}, (err, numUpdated) -> if err console.log(err); else if numUpdated console.log("Updated successfully #{numUpdated} document(s)."); else console.log('No document found!'); db.close(); )
Querying the documents in MongoDB.
cursor = City.find({isCapital: true}); cursor.sort({title: -1}); cursor.each((err, doc) -> if err console.log(err); else console.log('Fetched:', doc); );