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 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.

    Get more help

    Couldn't find what you were looking for?