FQL v4 will be decommissioned on June 30, 2025. Ensure that you complete your migration from FQL v4 to FQL v10 by that date.

For more details, review the migration guide. Contact support@fauna.com with any questions.

Modulo

This reference topic applies to FQL v4. Go to this page for the latest FQL v10 reference topics.

Modulo( value_1, value_2, ... )
modulo( value_1, value_2, ... )
Modulo( value_1, value_2, ... )
Modulo( value_1, value_2, ... )
Modulo( value_1, value_2, ... )

Description

The Modulo function computes the remainder after division on a list of numbers. Providing a single operand returns the operand.

Attempting to call Modulo with an empty list results in the error "Non-empty array expected."

Attempting to compute the remainder of a division by zero results in the error "Illegal division by zero."

Parameters

Parameter Type Definition and Requirements

value

List of Numbers

A single value or a list of values.

Returns

A Number which is the modulo from the value list.

Examples

client.query(
  q.Modulo(10, 5, 2)
)
.then((ret) => console.log(ret))
.catch((err) => console.error(
  'Error: [%s] %s: %s',
  err.name,
  err.message,
  err.errors()[0].description,
))
0
result = client.query(
  q.modulo(10, 5, 2)
)
print(result)
0
result, err := client.Query(
	f.Modulo(10, 5, 2))

if err != nil {
	fmt.Fprintln(os.Stderr, err)
} else {
	fmt.Println(result)
}
0
try
{
    Value result = await client.Query(
        Modulo(10, 5, 2)
    );
    Console.WriteLine(result);
}
catch (Exception e)
{
    Console.WriteLine($"ERROR: {e.Message}");
}
LongV(0)
Modulo(10, 5, 2)
0
Query metrics:
  •    bytesIn:  19

  •   bytesOut:  14

  • computeOps:   1

  •    readOps:   0

  •   writeOps:   0

  •  readBytes:   0

  • writeBytes:   0

  •  queryTime: 4ms

  •    retries:   0

is equivalent to:

client.query(
  q.Modulo(q.Modulo(10, 5), 2)
)
.then((ret) => console.log(ret))
.catch((err) => console.error(
  'Error: [%s] %s: %s',
  err.name,
  err.message,
  err.errors()[0].description,
))
0
result = client.query(
  q.modulo(q.modulo(10, 5), 2)
)
print(result)
0
result, err := client.Query(
	f.Modulo(f.Modulo(10, 5), 2))

if err != nil {
	fmt.Fprintln(os.Stderr, err)
} else {
	fmt.Println(result)
}
0
try
{
    Value result = await client.Query(
        Modulo(Modulo(10, 5), 2)
    );
    Console.WriteLine(result);
}
catch (Exception e)
{
    Console.WriteLine($"ERROR: {e.Message}");
}
LongV(0)
Modulo(Modulo(10, 5), 2)
0
Query metrics:
  •    bytesIn:  32

  •   bytesOut:  14

  • computeOps:   1

  •    readOps:   0

  •   writeOps:   0

  •  readBytes:   0

  • writeBytes:   0

  •  queryTime: 2ms

  •    retries:   0

Is this article helpful? 

Tell Fauna how the article can be improved:
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!