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.

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