X Tutup
Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 1.79 KB

File metadata and controls

57 lines (44 loc) · 1.79 KB
layout language permalink command io
api-command
JavaScript
api/javascript/binary/
binary
r
binary

Command syntax

{% apibody %} r.binary(data) → binary {% endapibody %}

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.

X Tutup