Book Image

Mastering RethinkDB

By : Shahid Shaikh
Book Image

Mastering RethinkDB

By: Shahid Shaikh

Overview of this book

RethinkDB has a lot of cool things to be excited about: ReQL (its readable,highly-functional syntax), cluster management, primitives for 21st century applications, and change-feeds. This book starts with a brief overview of the RethinkDB architecture and data modeling, and coverage of the advanced ReQL queries to work with JSON documents. Then, you will quickly jump to implementing these concepts in real-world scenarios, by building real-time applications on polling, data synchronization, share market, and the geospatial domain using RethinkDB and Node.js. You will also see how to tweak RethinkDB's capabilities to ensure faster data processing by exploring the sharding and replication techniques in depth. Then, we will take you through the more advanced administration tasks as well as show you the various deployment techniques using PaaS, Docker, and Compose. By the time you have finished reading this book, you would have taken your knowledge of RethinkDB to the next level, and will be able to use the concepts in RethinkDB to develop efficient, real-time applications with ease.
Table of Contents (16 chapters)
Mastering RethinkDB
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Executing ReQL queries in a cluster


We have our cluster in place running smoothly; let's perform a ReQL query and observe the response. First we will create a new table in the test database. As we have learned in Chapter 2, RethinkDB Query Language, we need to use the tableCreate() method to create a new table.

Let's execute a query from the web administrative screen:

r.db("test").tableCreate('clusterTest2') 

Here is our response object:

As you may have noticed the highlighted section, primary_replica is showing that this table is stored at a machine ending with _y7b, which is my second machine in the cluster. This proves that RethinkDB automatically utilizes the instances in the cluster.

Let's perform an insert operation on the same table and observe the response. Here is the insert ReQL query:

r.db("test").table("clusterTest").insert({name : "Shahid", age : 24})

Upon running it, we see that the document has been inserted in the clusterTest table and RethinkDB returns exactly the same...