Skip to content

Commit

Permalink
Rename to file-db and add README.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Ashworth committed May 2, 2013
1 parent f23efcf commit a09f463
Show file tree
Hide file tree
Showing 4 changed files with 121 additions and 2 deletions.
119 changes: 119 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# File DB

File DB is a (very limited) document database that uses directories and files to store its data, supporting nested key-value objects in named collections.

**Note:** It does not support storage of arrays. Give it objects with keys and values.

## Usage

The following code assumes you have installed `file-db` via npm and have this at the top of your file:

```javascript
var fdb = require('file-db');
```

### fdb

The main `file-db` lets you open a database.

#### Open a database

To open a connection to the database, use `open`, passing a path and a callback. The callback receives an error parameter and a connection object.

```javascript
fdb.open('tmp/example', function (err, db) {
// . . .
// Do your database stuff
// . . .
});
```

### Connection

Connection objects allow you to choose a collection to query.

#### Query a collection

The `use` method chooses a collection and returns a query object that you can use to query that collection.

```javascript
var query = db.use('users');
```

### Query

Query objects are tied to a specific collection, allowing you to choose how to query it.

#### Running a query

Whatever the query object, you can run it using the `exec` method:

```javascript
query.exec(function (err, documents) {
// Use the documents
});
```

#### Find all documents in a collection

The `find` method sets up the query to retrieve all documents from a collection.

```javascript
query.find()
.exec(doSomethingWithIt);
```

#### Find a document by _id

The `find` method sets up the query to retrieve all documents from a collection.

```javascript
query.findById('some-id')
.exec(doSomethingWithIt);
```

#### Saving data

The `save` method is an upsert for one document. That means it will create data you give it if it doesn't exist, and will generate an `_id` for the document if you don't give it one.

If you do give `save` an _id and the data does exist it will update the document.

`save` can be called multiple times – it appends to the data you've already added.

##### New document

```javascript
db.use('users')
.save({ name: 'Tom' })
.exec(doSomething);
```

##### New document with id

```javascript
db.use('users')
.save({ _id: 'abc123' })
.save({ name: 'Tom' })
.exec(doSomething);
```

##### Update existing document

```javascript
db.use('users')
.save({
_id: 'abc123',
name: 'phuu'
})
.exec(doSomething);
```

## Install

To install file-db, use npm:

`npm install file-db`

## License

MIT
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
module.exports = require('./lib/filedb');
module.exports = require('./lib/file-db');
File renamed without changes.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "filedb",
"name": "file-db",
"version": "0.0.0",
"description": "",
"main": "filedb.js",
Expand Down

0 comments on commit a09f463

Please sign in to comment.