# RethinkDB Cheat Sheet ## Create database ``` r.dbCreate('mydb') ``` ## List databases ``` r.dbList() ``` ## Drop database ``` r.dbDrop('test') ``` ## Create table ``` r.db('mydb').tableCreate('users') ``` ## Delete table ``` r.db('mydb').table("test").delete() ``` ## Insert record ``` r.db('mydb').table('users').insert({ name: 'Brad Traversy', city: 'Boston', age: 37 } ) ``` ## Insert records (Array or object) ``` r.db('mydb').table('users').insert([ {name: 'John Doe', city: 'Miami', age: 34}, {name: 'Sara Wilson', city: 'Boston', age: 28}, {name: 'Steve Smith', city: 'Detroit', age: 49}, {name: 'Jen Williams', city: 'Miami', age: 35} ]) ``` ## Get records ``` r.db('mydb').table('users') ``` ## Filter records ``` r.db('mydb').table('users').filter({ city: 'Boston' }) ``` ## Select specific fields ``` r.db('mydb').table('users').pluck('name') ``` ## Order By ``` r.db('mydb').table('users').orderBy(r.desc('name')) ``` ## Pluck & order by ``` r.db('mydb').table('users').filter({ 'city': 'Boston' }).orderBy( r.desc('name') ).pluck('name') ``` ## Limit records ``` r.db('mydb').table('users').limit(2) ``` ## Count ``` r.db('mydb').table("users").count() ``` ## Distinct ``` r.db('mydb').table("users").pluck("city").distinct() ``` ## Greater & less than ``` r.db('mydb').table("users").filter(r.row('age').gt(35)) r.db('mydb').table("users").filter(r.row('age').gte(35)) r.db('mydb').table("users").filter(r.row('age').lt(35)) ``` ## Update record ``` r.db('mydb').table("users").filter({ id: '592502cc-a84e-442d-a45f-24ebc344d8cf' }).update({ "city": 'Miami' }) ``` ## Delete record ``` r.db('mydb').table("users").filter({ id: '592502cc-a84e-442d-a45f-24ebc344d8cf' }).delete() ``` ## Joins ## Create and insert data for second table ``` r.db('mydb').table('tasks') ``` ``` r.db('mydb').table('tasks').insert([ {user_id: '50ea168e-400f-4ad6-9e6e-a09451b9a837', text: 'Task One'}, {user_id: 'f4fdffdc-30f7-4b4b-895d-c4a362864441', text: 'Task Two'}, {user_id: '50ea168e-400f-4ad6-9e6e-a09451b9a837', text: 'Task Three'}, {user_id: '50ea168e-400f-4ad6-9e6e-a09451b9a837', text: 'Task Four'} ]) ``` ## Join tables ``` r.db('mydb').table("tasks").eqJoin("user_id", r.db('mydb').table("users")).zip() ``` ## zip() will merge the user in the task, overwriting fields in case of conflict ``` r.db('mydb').table("tasks").eqJoin("user_id", r.db('mydb').table("users")).zip() ```