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 Python, it expects a parameter of bytes type. Using a bytes object within a query implies the use of binary and the ReQL driver will automatically perform the coercion (in Python 3 only).

    Binary objects returned to the client in JavaScript will also be of the bytes type. This can be changed with the binary_format option provided to run to return “raw” objects.

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

    • coerce_to 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)
    • type_of returns PTYPE<BINARY>
    • info will return information on a binary object.

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

    f = open('./default_avatar.png', 'rb')
    avatar_image = f.read()
    f.close()
    r.table('users').get(100).update({'avatar': r.binary(avatar_image)}).run(conn)
    

    Example: Get the size of an existing avatar image.

    r.table('users').get(100)['avatar'].count().run(conn)
    
    14156
    

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

    Get more help

    Couldn't find what you were looking for?