mongodb.js
Summary
No overview generated for 'mongodb.js'
var sys = require('sys');
var mongo = require('mongodb');
process.EventEmitter.prototype.emit = function (type) {
if (type === 'error') {
if (!this._events || !this._events.error ||
(this._events.error instanceof Array && !this._events.error.length))
{
if (arguments[1] instanceof Error) {
throw arguments[1];
} else {
throw new Error("Uncaught, unspecfied 'error' event.");
}
return false;
}
}
if (!this._events) return false;
if (!this._events[type]) return false;
if (typeof this._events[type] == 'function') {
if (arguments.length < 3) {
this._events[type].call( this
, arguments[1]
, arguments[2]
);
} else {
var args = Array.prototype.slice.call(arguments, 1);
if (args[0]['ok']) {
args[0] = null;
}
this._events[type].apply(this, args);
}
return true;
} else if (this._events[type] instanceof Array) {
var args = Array.prototype.slice.call(arguments, 1);
var listeners = this._events[type].slice(0);
for (var i = 0, l = listeners.length; i < l; i++) {
listeners[i].apply(this, args);
}
return true;
} else {
return false;
}
};
function MongoDBConnector() {};
MongoDBConnector.prototype.connect = function(dbConfiguration, callback) {
var host = dbConfiguration['host'];
var port = dbConfiguration['port'];
sys.puts("Connecting to " + host + ":" + port);
var db = new mongo.Db(dbConfiguration['database'], new mongo.Server(host, port, {'autoReconnect' : true}), {});
db.open(function(err, db) {
callback(db);
});
}
exports.connect = MongoDBConnector.prototype.connect;
MongoDBConnector.prototype.close = function(self, params, callback) {
self.db.close();
callback();
}
exports.close = MongoDBConnector.prototype.close;
MongoDBConnector.prototype.createIndex = function(self, params, callback) {
self.db.collection(params['collectionName'], function(err, collection) {
collection.createIndex(params['indexes'], function(err, indexName) {
sys.puts(indexName);
callback();
});
});
}
exports.createIndex = MongoDBConnector.prototype.createIndex;
MongoDBConnector.prototype.create = function(self, params, callback) {
self.db.collection(params['collectionName'], function(err, collection) {
var results = {};
collection.insert(params['values'], function(err, docs) {
callback();
});
});
}
exports.create = MongoDBConnector.prototype.create;
MongoDBConnector.prototype.find = function(self, params, callback) {
var callbackTemp = function(results) {
callback(results)
}
self.db.collection(params['collectionName'], function(err, collection) {
var results = [];
collection.find(params['query'], params['sort'], function(err, cursor) {
cursor.each(function(err, article) {
if(article != null) {
results.push(article);
} else {
callbackTemp(results);
}
});
});
});
}
exports.find = MongoDBConnector.prototype.find;
Documentation generated by
JSDoc on Sun May 9 00:47:14 2010