0.4.3 • Published 10 years ago

gracenode-mongodb v0.4.3

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

MongoDB Module

MongoDB module for gracenode framework

This is designed to function within gracenode framework.

How to include it in my project

To add this package as your gracenode module, add the following to your package.json:

"dependencies": {
        "gracenode": "",
        "gracenode-mongodb": ""
}

To use this module in your application, add the following to your gracenode bootstrap code:

var gracenode = require('gracenode');
// this tells gracenode to load the module
gracenode.use('gracenode-mongodb');

To access the module:

// the prefix gracenode- will be removed automatically
gracenode.mongodb

Access

Configurations

"modules": {
	"gracenode-mongodb": {
		"configNameOfYourChoice": {
			"host": "host name or IP address" or an array of hosts,
			"port": <port number> or an array of ports,
			"database": "database name",
			"poolSize": <optional>,
			"user": <optional>,
			"password": <optional>,
			"replicaSet": <optional>,
			"readPreference": "<optional>"
		}{...}
	}
}
.create(configName string)

Returns an instance of Db class

Db class

.collection(collectionName string)

Returns an instance of Collection class

.collectionNames(callback function)

Returns a list of all collection names in a database.

.collections(callback function)

Returns detailed collection metadata in a database.

.drop(collectionName string, callback function)

Drops an entire collection.

Collection class

.stream(query object, fields array, options object)

This is very useful when reading a very large data set

var myDb = gracenode.mongodb.create('myDb');
var myCol = myDb.collection('myCol');
var stream = myCol.stream({ age: { $gte: 20 } }, ['_id', 'name', 'age'], { limit: 100 });
stream.on('data', function (data) {
	// read one record at a time up to limit (100)
});
stream.on('error', function (error) {
	// error
});
stream.on('close', function () {
	// all done
});
.findOne(query object, fields array, callback function)
var myDb = gracenode.mongodb.create('myDb');
var myCol = myDb.collection('myCol');
myCol.findOne({ _id: 123456 }, ['_id', 'name'], function (error, doc) {
	// do something
});
.findMany(query object, feilds array, pagenate object, callback function)

pagenate:

{
	limit: <int>
	offset: <int>
	sort: <object>
	toArray: <boolean>
}

NOTE: If toArray in pagenate is true, it will use .toArray() to read the data.

var myDb = gracenode.mongodb.create('myDb');
var myCol = myDb.collection('myCol');
// query upto 10 documents and offset from 5th record matched. Plus sort the records by 'age'
myCol.findMany({ _id: 123456 }, ['_id', 'name'], { limit: 10, offset: 5, sort: { age: -1 } }, function (error, doc) {
	// do something
});
.findEach(query object, fields array, limit integer, sort *object, eachCallback function, finalCallback function)

Executes findMany with the given limit and auto-iterate until it finds no more record. Each iteration will call eachCallback.

When it reaches the end, it will call finalCallback.

This operation can be very expensive.

Example:

var myDb = gracenode.mongodb.create('myDb');
var myCol = gracenode.mongodb.collection('myCol');
myCol.findEach({ _id: /name/ }, ['age'], { sort: { age: -1 } }, function (list, next) {
	// do something with list
	next();
},
function (error) {
	// done
});
.ensureIndex(indexes object, options object, callback function)
.insert(values object, callback function)
.update(conditions object, updates object, callback function)

NOTE: safe and multi are always true and upsert is false)

.upsert(conditions object, updates object, multi boolean, callback function)
.increment(conditions object, propertyName string, incrementBy number, maxNumAllowed number, callback function)

Does NOT allow the target property to exceed maximum number given

.decrement(conditions object, propertyName string, decrementBy number, callback function)

Does NOT allow the target property to fall below 0

.save(values object, callback function)
.delete(values object, callback function)
.findAndModify(query object, sort object, update object, options object, callback function)
.count(object query, callback function)
var mongo = gracenode.mongodb.create('mongoDatabase').collection('cookieJar');
mongo.count({ type: 'cookies' }, function (error, count) {
	console.log('There are', count, 'cookies in the jar');
});
.mapReduce(map function, reduce function, options object, callback function)

MongoDB Map Reduce Example

.aggregate(pipeline array, callback function)
0.4.3

10 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago