Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
REST Server for MongoDB (using node.js)
branch: master

This branch is 6 commits behind tdegrunt:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
public
test
views
.gitignore
LICENSE
README.md
config.json
package.json
server.js

README.md

Name

mongodb-rest - REST server for MongoDB

Description

This is a REST server for MongoDB using Node, using the native node.js MongoDB driver. Using Express, it can now start in any folder and will happily server any files a public folder.

Installation

Installation is now via npm: npm install mongodb-rest. After that you can just issue mongodb-rest on the command line and the server should start.

Try

After installation you can quickly try whether it works by issuing the following from the command line:

curl -d '{ "A1" : 201 }' -H "Content-Type: application/json" http://localhost:3000/test/example1

This should add a document to the "test" db.example1 collection: { "A1": 201, "_id": ObjectId("4e90e196b0c7f4687000000e") }

Notes

Supported REST requests:

  • GET /db/collection - Returns all documents
  • GET /db/collection?query=%7B%22isDone%22%3A%20false%7D - Returns all documents satisfying query
  • GET /db/collection?query=%7B%22isDone%22%3A%20false%7D&limit=2&skip=2 - Ability to add options to query (limit, skip, etc)
  • GET /db/collection/id - Returns document with id
  • POST /db/collection - Insert new document in collection (document in POST body)
  • PUT /db/collection/id - Update document with id (updated document in PUT body)
  • DELETE /db/collection/id - Delete document with id

Flavors:

  • Setup "sproutcore" as flavor, it will then change _id as returned by MongoDB into guid, as used by SproutCore, this allows for simpler DataSources.
  • Setup "nounderscore" as flavor, it will then change _id into id.

Content Type:

  • Please make sure application/json is used as Content-Type when using POST/PUT with request body's.

Dependencies:

  • Are all indicated in package.json. So far I indicate the lowest version with which I tested the code. Sadly this can result in non-working code when later versions are used.

Testing

Testing is now done using expresso. Just run the following in the main folder: expresso -s test/create.test.js test/delete.test.js test/update.test.js The SproutCore test needs to be run separately at the moment.

Future

  • REST - PUT /db/collection - Update whole collection with changes in PUT body
  • Other useful commands (quit, reconnect, addUser, removeUser, etc)

Credits

Something went wrong with that request. Please try again.