You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.8 KiB

14 years ago
# mongojs
A [node.js](http://nodejs.org) module for mongodb, that emulates [the official mongodb API](http://www.mongodb.org/display/DOCS/Home) as much as possible. It wraps [mongodb-native](https://github.com/christkv/node-mongodb-native/).
14 years ago
It is available through npm:
npm install mongojs
14 years ago
## Usage
14 years ago
mongojs is very simple to use:
14 years ago
``` js
var mongojs = require('mongojs');
var db = mongojs(connectionString, [collections]);
```
14 years ago
The connection string should follow the format desribed in [the mongo connection string docs](http://docs.mongodb.org/manual/reference/connection-string/).
14 years ago
Some examples of this could be:
``` js
14 years ago
// simple usage for a local db
var db = mongojs('mydb', ['mycollection']);
14 years ago
// the db is on a remote server (the port default to mongo)
var db = mongojs('example.com/mydb', ['mycollection']);
14 years ago
// we can also provide some credentials
var db = mongojs('username:password@example.com/mydb', ['mycollection']);
// connect now, and worry about collections later
var db = mongojs('mydb');
var mycollection = db.collection('mycollection');
```
14 years ago
After we connected we can query or update the database just how we would using the mongo API with the exception that we use a callback
13 years ago
The format for callbacks is always `callback(error, value)` where error is null if no exception has occured.
14 years ago
``` js
14 years ago
// find everything
13 years ago
db.mycollection.find(function(err, docs) {
// docs is an array of all the documents in mycollection
});
14 years ago
// find everything, but sort by name
13 years ago
db.mycollection.find().sort({name:1}, function(err, docs) {
// docs is now a sorted array
});
// iterate over all whose level is greater than 90.
db.mycollection.find({level:{$gt:90}}).forEach(function(err, doc) {
if (!doc) {
// we visited all docs in the collection
return;
}
// doc is a document in the collection
});
14 years ago
// find all named 'mathias' and increment their level
13 years ago
db.mycollection.update({name:'mathias'}, {$inc:{level:1}}, {multi:true}, function(err) {
// the update is complete
});
14 years ago
// use the save function to just save a document (the callback is optional for all writes)
db.mycollection.save({created:'just now'});
```
For more detailed information about the different usages of update and quering see [the mongo docs](http://www.mongodb.org/display/DOCS/Manual)
## Replication Sets
Mongojs can also connect to a mongo replication set
``` js
var db = mongojs({
db: 'mydb', // the name of our database
collections: ['mycollection'], // we can pass the collections here also
replSet: {
name: 'myReplSetName', // the name of the replication set
slaveOk: true, // is it ok to read from secondary? defaults to false
members: ['myserver:myport', 'myotherserver', 'mythirdserver']
}
});
```
For more detailed information about replica sets see [the mongo replication docs](http://www.mongodb.org/display/DOCS/Replica+Sets)