# thinky

> RethinkDB ORM for Node.js

Latest version **2.3.9** (published 2017-09-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install thinky
pnpm add thinky
yarn add thinky
bun add thinky
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.3.9 |
| Published | 2017-09-03 |
| First published | 2013-07-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Known vulnerabilities | 0 (+3 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 1111 |
| Author | Michel Tu |
| Maintainers | neumino |
| Keywords | rethinkdb, orm |

## Links

- npm: https://www.npmjs.com/package/thinky
- Repository: https://github.com/neumino/thinky
- Homepage: https://github.com/neumino/thinky#readme
- Issues: https://github.com/neumino/thinky/issues
- npm.io page: https://npm.io/package/thinky

## Dependencies (3)

- [bluebird](https://npm.io/package/bluebird.md) ~2.10.2
- [validator](https://npm.io/package/validator.md) ~3.34.0
- [rethinkdbdash](https://npm.io/package/rethinkdbdash.md) ~2.3.0

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 2.3.9 (latest) — 2017-09-03
- 2.3.8 — 2016-11-11
- 2.3.7 — 2016-10-02
- 2.3.6 — 2016-08-24
- 2.3.5 — 2016-08-15
- 2.3.4 — 2016-07-16
- 2.3.3 — 2016-07-04
- 2.3.2 — 2016-04-30
- 2.3.1 — 2016-04-29
- 2.2.8 — 2016-04-19
- 2.3.0 — 2016-04-18
- 2.2.7 — 2016-04-03
- 2.2.6 — 2016-03-17
- 2.2.5 — 2016-03-09
- 2.2.4 — 2016-01-09
- … 114 more at https://npm.io/package/thinky/versions

## README

# Thinky
===============================
<a href="https://app.wercker.com/project/bykey/e5ab679f3412f8f86ef6488b31004fed"><img alt="Wercker status" src="https://app.wercker.com/status/e5ab679f3412f8f86ef6488b31004fed/m/master" align="right"></a>
Light Node.js ORM for RethinkDB.  

### Quick start 

Install:

```
npm install thinky
```

Use:

```javascript
var thinky = require('thinky')();
var type   = thinky.type;

// Create a model - the table is automatically created
var Post = thinky.createModel("Post", {
  id: String,
  title: String,
  content: String,
  idAuthor: String
}); 

// You can also add constraints on the schema
var Author = thinky.createModel("Author", {
  id: type.string(),      // a normal string
  name: type.string().min(2),  // a string of at least two characters
  email: type.string().email()  // a string that is a valid email
});

// Join the models
Post.belongsTo(Author, "author", "idAuthor", "id");
```

Save a new post with its author.

```js
// Create a new post
var post = new Post({
  title: "Hello World!",
  content: "This is an example."
});

// Create a new author
var author = new Author({
  name: "Michel",
  email: "orphee@gmail.com"
});

// Join the documents
post.author = author;


post.saveAll().then(function(result) {
  /*
  post = result = {
    id: "0e4a6f6f-cc0c-4aa5-951a-fcfc480dd05a",
    title: "Hello World!",
    content: "This is an example.",
    idAuthor: "3851d8b4-5358-43f2-ba23-f4d481358901",
    author: {
      id: "3851d8b4-5358-43f2-ba23-f4d481358901",
      name: "Michel",
      email: "orphee@gmail.com"
    }
  }
  */
});
```

Retrieve the post with its author.

```js
Post.get("0e4a6f6f-cc0c-4aa5-951a-fcfc480dd05a").getJoin().run().then(function(result) {
  /*
  result = {
    id: "0e4a6f6f-cc0c-4aa5-951a-fcfc480dd05a",
    title: "Hello World!",
    content: "This is an example.",
    idAuthor: "3851d8b4-5358-43f2-ba23-f4d481358901",
    author: {
      id: "3851d8b4-5358-43f2-ba23-f4d481358901",
      name: "Michel",
      email: "orphee@gmail.com"
    }
  }
  */
});
```



### Documentation

[https://www.justonepixel.com/thinky](https://www.justonepixel.com/thinky) (branch `gh-pages).

### Help

No SLA, but a few developers hang out there and may be able to help:

- [irc://irc.freenode.org/rethinkdb](irc://irc.freenode.org/rethinkdb)
- [https://gitter.im/neumino/thinky](https://gitter.im/neumino/thinky)

### Run the tests

```
npm test
```

### Contribute

You are welcome to do a pull request.


### Roadmap

The roadmap is defined with the issues/feedback on GitHub. Checkout:  
[https://github.com/neumino/thinky/issues](https://github.com/neumino/thinky/issues)


### Author
- Michel Tu -- orphee@gmail.com -- [blog](http://blog.justonepixel.com) -- [twitter](https://twitter.com/neumino)

### Contributors

- [chrisfosterelli](https://github.com/chrisfosterelli)
- [colprog](https://github.com/colprog)
- [dulichan](https://github.com/dulichan)
- [flienteen](https://github.com/flienteen)
- [marshall007](https://github.com/marshall007)
- [mindjuice](https://github.com/mindjuice)
- [Morhaus](https://github.com/Morhaus)
- [primitive-type](https://github.com/primitive-type)
- [nikaspran](https://github.com/nikaspran)
- [rasapetter](https://github.com/rasapetter)
- [simonratner](https://github.com/simonratner)
- [wezs](https://github.com/wezs)
 

### License

MIT, see the [LICENSE](https://github.com/neumino/thinky/blob/master/LICENSE) file

---
_Source: https://npm.io/package/thinky · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
