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 Java, it expects a parameter of byte[] type (or ReQL queries that return binary data).

Binary objects returned to the client in Java will also be byte[] types. This can be changed with the binary_format optArg 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.

import java.nio.file.*;

Path path = Paths.get("./defaultAvatar.png");
byte[] avatarImage = Files.readAllBytes(path);
r.table("users").get(100).update(r.hashMap("avatar", avatarImage));

Example: Get the size of an existing avatar image.

r.table("users").get(100)("avatar").count().run(conn);

// Result:
14156

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

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/java/binary/