Back to top

ReQL command: binary

Command syntax

r.binary(data) → binary

Description

Encapsulate binary data within a query.

The type of data binary accepts depends on the client language. In JavaScript, it expects a Node.js Buffer. Using a Buffer object within a query implies the use of binary and the ReQL driver will automatically perform the coercion.

Binary objects returned to the client in JavaScript will also be Node.js Buffer objects. This can be changed with the binaryFormat option provided to run to return “raw” objects.

Only a limited subset of ReQL commands may be chained after binary:

  • coerceTo can coerce binary objects to string types
  • count will return the number of bytes in the object
  • slice will treat bytes like array indexes (i.e., slice(10,20) will return bytes 10–19)
  • typeOf returns PTYPE<BINARY>
  • info will return information on a binary object.

Example: Save an avatar image to a existing user record.

var fs = require('fs');
fs.readFile('./defaultAvatar.png', function (err, avatarImage) {
    if (err) {
        // Handle error
    }
    else {
        r.table('users').get(100).update({
            avatar: avatarImage
        })
    }
});

Example: Get the size of an existing avatar image.

r.table('users').get(100)('avatar').count().run(conn, callback);
// result returned to callback
14156

Read more details about RethinkDB’s binary object support: Storing binary objects.

Get more help

Couldn't find what you were looking for?