Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

yicone/thinky

Repository files navigation

Thinky

=============================== Light Node.js ORM for RethinkDB.

Quick start

Install:

npm install thinky

Use:

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.

// 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.

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://thinky.io

Help

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

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

Author

Contributors

License

MIT, see the LICENSE file

About

JavaScript ORM for RethinkDB

Resources

Readme

License

View license

Contributing

Contributing

Stars

Watchers

Forks

Packages

Contributors

Languages

  • JavaScript 100.0%