class Expr (View source)

Fluent interface for building aggregation pipelines.

Methods

__construct(DocumentManager $dm, ClassMetadata $class)

No description

abs(mixed|Expr $number)

Returns the absolute value of a number.

add(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Adds numbers together or adds numbers and a date. If one of the arguments is a date, $add treats the other arguments as milliseconds to add to the date.

addAnd(array|Expr $expression, array|Expr ...$expressions)

Adds one or more $and clauses to the current expression.

addOr(array|Expr $expression, array|Expr ...$expressions)

Adds one or more $or clause to the current expression.

addToSet(mixed|Expr $expression)

Returns an array of all unique values that results from applying an expression to each document in a group of documents that share the same group by key. Order of the elements in the output array is unspecified.

allElementsTrue(mixed|Expr $expression)

Evaluates an array as a set and returns true if no element in the array is false. Otherwise, returns false. An empty array returns true.

anyElementTrue(array|Expr $expression)

Evaluates an array as a set and returns true if any of the elements are true and false otherwise. An empty array returns false.

arrayElemAt(mixed|Expr $array, mixed|Expr $index)

Returns the element at the specified array index.

avg(mixed|Expr $expression)

Returns the average value of the numeric values that result from applying a specified expression to each document in a group of documents that share the same group by key. Ignores nun-numeric values.

case(mixed|Expr $expression)

Adds a case statement for a branch of the $switch operator.

ceil(mixed|Expr $number)

Returns the smallest integer greater than or equal to the specified number.

cmp(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: -1 if the first value is less than the second.

concat(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Concatenates strings and returns the concatenated string.

concatArrays(mixed|Expr $array1, mixed|Expr $array2, mixed|Expr ...$arrays)

Concatenates arrays to return the concatenated array.

cond(mixed|Expr $if, mixed|Expr $then, mixed|Expr $else)

Evaluates a boolean expression to return one of the two specified return expressions.

static string|array
convertExpression(mixed|Expr $expression)

Converts an expression object into an array, recursing into nested items

dateToString(string $format, $expression)

Converts a date object to a string according to a user-specified format.

dayOfMonth(mixed|Expr $expression)

Returns the day of the month for a date as a number between 1 and 31.

dayOfWeek(mixed|Expr $expression)

Returns the day of the week for a date as a number between 1 (Sunday) and 7 (Saturday).

dayOfYear(mixed|Expr $expression)

Returns the day of the year for a date as a number between 1 and 366.

default(mixed|Expr $expression)

Adds a default statement for the current $switch operator.

divide(mixed|Expr $expression1, mixed|Expr $expression2)

Divides one number by another and returns the result. The first argument is divided by the second argument.

eq(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns whether the are equivalent.

exp(mixed|Expr $exponent)

Raises Euler’s number to the specified exponent and returns the result.

expr()

Returns a new expression object

expression(mixed|Expr $value)

Allows any expression to be used as a field value.

field(string $fieldName)

Set the current field for building the expression.

filter(mixed|Expr $input, mixed|Expr $as, mixed|Expr $cond)

Selects a subset of the array to return based on the specified condition.

first(mixed|Expr $expression)

Returns the value that results from applying an expression to the first document in a group of documents that share the same group by key. Only meaningful when documents are in a defined order.

floor(mixed|Expr $number)

Returns the largest integer less than or equal to the specified number.

getExpression()

No description

gt(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is greater than the second value.

gte(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is greater than or equivalent to the second value.

hour(mixed|Expr $expression)

Returns the hour portion of a date as a number between 0 and 23.

ifNull(mixed|Expr $expression, mixed|Expr $replacementExpression)

Evaluates an expression and returns the value of the expression if the expression evaluates to a non-null value. If the expression evaluates to a null value, including instances of undefined values or missing fields, returns the value of the replacement expression.

in(mixed|Expr $expression, mixed|Expr $arrayExpression)

Returns a boolean indicating whether a specified value is in an array.

indexOfArray(mixed|Expr $arrayExpression, mixed|Expr $searchExpression, mixed|Expr $start = null, mixed|Expr $end = null)

Searches an array for an occurrence of a specified value and returns the array index (zero-based) of the first occurrence. If the value is not found, returns -1.

indexOfBytes(mixed|Expr $stringExpression, mixed|Expr $substringExpression, string|int|null $start = null, string|int|null $end = null)

Searches a string for an occurrence of a substring and returns the UTF-8 byte index (zero-based) of the first occurrence. If the substring is not found, returns -1.

indexOfCP(mixed|Expr $stringExpression, mixed|Expr $substringExpression, string|int|null $start = null, string|int|null $end = null)

Searches a string for an occurrence of a substring and returns the UTF-8 code point index (zero-based) of the first occurrence. If the substring is not found, returns -1.

isArray(mixed|Expr $expression)

Determines if the operand is an array. Returns a boolean.

isoDayOfWeek(mixed|Expr $expression)

Returns the weekday number in ISO 8601 format, ranging from 1 (for Monday) to 7 (for Sunday).

isoWeek(mixed|Expr $expression)

Returns the week number in ISO 8601 format, ranging from 1 to 53.

isoWeekYear(mixed|Expr $expression)

Returns the year number in ISO 8601 format.

last(mixed|Expr $expression)

Returns the value that results from applying an expression to the last document in a group of documents that share the same group by a field.

let(mixed|Expr $vars, mixed|Expr $in)

Binds variables for use in the specified expression, and returns the result of the expression.

literal(mixed|Expr $value)

Returns a value without parsing. Use for values that the aggregation pipeline may interpret as an expression.

ln(mixed|Expr $number)

Calculates the natural logarithm ln (i.e loge) of a number and returns the result as a double.

log(mixed|Expr $number, mixed|Expr $base)

Calculates the log of a number in the specified base and returns the result as a double.

log10(mixed|Expr $number)

Calculates the log base 10 of a number and returns the result as a double.

lt(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is less than the second value.

lte(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is less than or equivalent to the second value.

map(mixed|Expr $input, string $as, mixed|Expr $in)

Applies an expression to each item in an array and returns an array with the applied results.

max(mixed|Expr $expression)

Returns the highest value that results from applying an expression to each document in a group of documents that share the same group by key.

meta(mixed|Expr $metaDataKeyword)

Returns the metadata associated with a document in a pipeline operations.

millisecond(mixed|Expr $expression)

Returns the millisecond portion of a date as an integer between 0 and 999.

min(mixed|Expr $expression)

Returns the lowest value that results from applying an expression to each document in a group of documents that share the same group by key.

minute(mixed|Expr $expression)

Returns the minute portion of a date as a number between 0 and 59.

mod(mixed|Expr $expression1, mixed|Expr $expression2)

Divides one number by another and returns the remainder. The first argument is divided by the second argument.

month(mixed|Expr $expression)

Returns the month of a date as a number between 1 and 12.

multiply(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Multiplies numbers together and returns the result.

ne(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the values are not equivalent.

not(mixed|Expr $expression)

Evaluates a boolean and returns the opposite boolean value.

pow(mixed|Expr $number, mixed|Expr $exponent)

Raises a number to the specified exponent and returns the result.

push(mixed|Expr $expression)

Returns an array of all values that result from applying an expression to each document in a group of documents that share the same group by key.

range(mixed|Expr $start, mixed|Expr $end, mixed|Expr $step = 1)

Returns an array whose elements are a generated sequence of numbers.

reduce(mixed|Expr $input, mixed|Expr $initialValue, mixed|Expr $in)

Applies an expression to each element in an array and combines them into a single value.

reverseArray(mixed|Expr $expression)

Accepts an array expression as an argument and returns an array with the elements in reverse order.

second(mixed|Expr $expression)

Returns the second portion of a date as a number between 0 and 59, but can be 60 to account for leap seconds.

setDifference(mixed|Expr $expression1, mixed|Expr $expression2)

Takes two sets and returns an array containing the elements that only exist in the first set.

setEquals(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Compares two or more arrays and returns true if they have the same distinct elements and false otherwise.

setIntersection(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Takes two or more arrays and returns an array that contains the elements that appear in every input array.

setIsSubset(mixed|Expr $expression1, mixed|Expr $expression2)

Takes two arrays and returns true when the first array is a subset of the second, including when the first array equals the second array, and false otherwise.

setUnion(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Takes two or more arrays and returns an array containing the elements that appear in any input array.

size(mixed|Expr $expression)

Counts and returns the total the number of items in an array.

slice(mixed|Expr $array, mixed|Expr $n, mixed|Expr|null $position = null)

Returns a subset of an array.

split(mixed|Expr $string, mixed|Expr $delimiter)

Divides a string into an array of substrings based on a delimiter.

sqrt(mixed|Expr $expression)

Calculates the square root of a positive number and returns the result as a double.

stdDevPop(mixed|Expr $expression1, mixed|Expr ...$expressions)

Calculates the population standard deviation of the input values.

stdDevSamp(mixed|Expr $expression1, mixed|Expr ...$expressions)

Calculates the sample standard deviation of the input values.

strcasecmp(mixed|Expr $expression1, mixed|Expr $expression2)

Performs case-insensitive comparison of two strings. Returns 1 if first string is “greater than” the second string.

strLenBytes(mixed|Expr $string)

Returns the number of UTF-8 encoded bytes in the specified string.

strLenCP(mixed|Expr $string)

Returns the number of UTF-8 code points in the specified string.

substr(mixed|Expr $string, mixed|Expr $start, mixed|Expr $length)

Returns a substring of a string, starting at a specified index position and including the specified number of characters. The index is zero-based.

substrBytes(mixed|Expr $string, mixed|Expr $start, mixed|Expr $count)

Returns the substring of a string.

substrCP(mixed|Expr $string, mixed|Expr $start, mixed|Expr $count)

Returns the substring of a string.

subtract(mixed|Expr $expression1, mixed|Expr $expression2)

Subtracts two numbers to return the difference. The second argument is subtracted from the first argument.

sum(mixed|Expr $expression)

Calculates and returns the sum of all the numeric values that result from applying a specified expression to each document in a group of documents that share the same group by key. Ignores nun-numeric values.

toLower(mixed|Expr $expression)

Converts a string to lowercase, returning the result.

toUpper(mixed|Expr $expression)

Converts a string to uppercase, returning the result.

trunc(mixed|Expr $number)

Truncates a number to its integer.

type(mixed|Expr $expression)

Returns a string that specifies the BSON type of the argument.

week(mixed|Expr $expression)

Returns the week of the year for a date as a number between 0 and 53.

year(mixed|Expr $expression)

Returns the year portion of a date.

zip(mixed|Expr $inputs, bool|null $useLongestLength = null, mixed|Expr|null $defaults = null)

Transposes an array of input arrays so that the first element of the output array would be an array containing, the first element of the first input array, the first element of the second input array, etc.

switch()

Evaluates a series of case expressions. When it finds an expression which evaluates to true, $switch executes a specified expression and breaks out of the control flow.

then(mixed|Expr $expression)

Adds a case statement for the current branch of the $switch operator.

Details

__construct(DocumentManager $dm, ClassMetadata $class)

Parameters

DocumentManager $dm
ClassMetadata $class

abs(mixed|Expr $number)

Returns the absolute value of a number.

The argument can be any valid expression as long as it resolves to a number.

add(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Adds numbers together or adds numbers and a date. If one of the arguments is a date, $add treats the other arguments as milliseconds to add to the date.

The arguments can be any valid expression as long as they resolve to either all numbers or to numbers and a date.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2
mixed|Expr ...$expressions Additional expressions

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/add/

addAnd(array|Expr $expression, array|Expr ...$expressions)

Adds one or more $and clauses to the current expression.

Parameters

array|Expr $expression
array|Expr ...$expressions

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/and/

addOr(array|Expr $expression, array|Expr ...$expressions)

Adds one or more $or clause to the current expression.

Parameters

array|Expr $expression
array|Expr ...$expressions

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/or/

addToSet(mixed|Expr $expression)

Returns an array of all unique values that results from applying an expression to each document in a group of documents that share the same group by key. Order of the elements in the output array is unspecified.

AddToSet is an accumulator operation only available in the group stage.

allElementsTrue(mixed|Expr $expression)

Evaluates an array as a set and returns true if no element in the array is false. Otherwise, returns false. An empty array returns true.

The expression must resolve to an array.

anyElementTrue(array|Expr $expression)

Evaluates an array as a set and returns true if any of the elements are true and false otherwise. An empty array returns false.

The expression must resolve to an array.

arrayElemAt(mixed|Expr $array, mixed|Expr $index)

Returns the element at the specified array index.

The expression can be any valid expression as long as it resolves to an array. The expression can be any valid expression as long as it resolves to an integer.

avg(mixed|Expr $expression)

Returns the average value of the numeric values that result from applying a specified expression to each document in a group of documents that share the same group by key. Ignores nun-numeric values.

case(mixed|Expr $expression)

Adds a case statement for a branch of the $switch operator.

Requires {@link switch()} to be called first. The argument can be any valid expression that resolves to a boolean. If the result is not a boolean, it is coerced to a boolean value.

Parameters

mixed|Expr $expression

ceil(mixed|Expr $number)

Returns the smallest integer greater than or equal to the specified number.

The expression can be any valid expression as long as it resolves to a number.

cmp(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: -1 if the first value is less than the second.

1 if the first value is greater than the second. 0 if the two values are equivalent.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/cmp/

concat(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Concatenates strings and returns the concatenated string.

The arguments can be any valid expression as long as they resolve to strings. If the argument resolves to a value of null or refers to a field that is missing, $concat returns null.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2
mixed|Expr ...$expressions Additional expressions

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/concat/

concatArrays(mixed|Expr $array1, mixed|Expr $array2, mixed|Expr ...$arrays)

Concatenates arrays to return the concatenated array.

The expressions can be any valid expression as long as they resolve to an array.

Parameters

mixed|Expr $array1
mixed|Expr $array2
mixed|Expr ...$arrays Additional expressions

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/concatArrays/

cond(mixed|Expr $if, mixed|Expr $then, mixed|Expr $else)

Evaluates a boolean expression to return one of the two specified return expressions.

The arguments can be any valid expression.

Parameters

mixed|Expr $if
mixed|Expr $then
mixed|Expr $else

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/cond/

static string|array convertExpression(mixed|Expr $expression)

Converts an expression object into an array, recursing into nested items

For expression objects, it calls getExpression on the expression object. For arrays, it recursively calls itself for each array item. Other values are returned directly.

Parameters

mixed|Expr $expression

Return Value

string|array

dateToString(string $format, $expression)

Converts a date object to a string according to a user-specified format.

The format string can be any string literal, containing 0 or more format specifiers. The date argument can be any expression as long as it resolves to a date.

dayOfMonth(mixed|Expr $expression)

Returns the day of the month for a date as a number between 1 and 31.

The argument can be any expression as long as it resolves to a date.

dayOfWeek(mixed|Expr $expression)

Returns the day of the week for a date as a number between 1 (Sunday) and 7 (Saturday).

The argument can be any expression as long as it resolves to a date.

dayOfYear(mixed|Expr $expression)

Returns the day of the year for a date as a number between 1 and 366.

The argument can be any expression as long as it resolves to a date.

default(mixed|Expr $expression)

Adds a default statement for the current $switch operator.

Requires {@link switch()} to be called first. The argument can be any valid expression.

Note: if no default is specified and no branch evaluates to true, the $switch operator throws an error.

Parameters

mixed|Expr $expression

divide(mixed|Expr $expression1, mixed|Expr $expression2)

Divides one number by another and returns the result. The first argument is divided by the second argument.

The arguments can be any valid expression as long as the resolve to numbers.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/divide/

eq(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns whether the are equivalent.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/eq/

exp(mixed|Expr $exponent)

Raises Euler’s number to the specified exponent and returns the result.

The expression can be any valid expression as long as it resolves to a number.

expr()

Returns a new expression object

expression(mixed|Expr $value)

Allows any expression to be used as a field value.

field(string $fieldName)

Set the current field for building the expression.

Parameters

string $fieldName

filter(mixed|Expr $input, mixed|Expr $as, mixed|Expr $cond)

Selects a subset of the array to return based on the specified condition.

Returns an array with only those elements that match the condition. The returned elements are in the original order.

Parameters

mixed|Expr $input
mixed|Expr $as
mixed|Expr $cond

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/filter/

first(mixed|Expr $expression)

Returns the value that results from applying an expression to the first document in a group of documents that share the same group by key. Only meaningful when documents are in a defined order.

floor(mixed|Expr $number)

Returns the largest integer less than or equal to the specified number.

The expression can be any valid expression as long as it resolves to a number.

getExpression()

gt(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is greater than the second value.

false when the first value is less than or equivalent to the second value.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/gt/

gte(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is greater than or equivalent to the second value.

false when the first value is less than the second value.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/gte/

hour(mixed|Expr $expression)

Returns the hour portion of a date as a number between 0 and 23.

The argument can be any expression as long as it resolves to a date.

ifNull(mixed|Expr $expression, mixed|Expr $replacementExpression)

Evaluates an expression and returns the value of the expression if the expression evaluates to a non-null value. If the expression evaluates to a null value, including instances of undefined values or missing fields, returns the value of the replacement expression.

The arguments can be any valid expression.

Parameters

mixed|Expr $expression
mixed|Expr $replacementExpression

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/ifNull/

in(mixed|Expr $expression, mixed|Expr $arrayExpression)

Returns a boolean indicating whether a specified value is in an array.

Unlike the $in query operator, the aggregation $in operator does not support matching by regular expressions.

Parameters

mixed|Expr $expression
mixed|Expr $arrayExpression

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/in/

indexOfArray(mixed|Expr $arrayExpression, mixed|Expr $searchExpression, mixed|Expr $start = null, mixed|Expr $end = null)

Searches an array for an occurrence of a specified value and returns the array index (zero-based) of the first occurrence. If the value is not found, returns -1.

Parameters

mixed|Expr $arrayExpression Can be any valid expression as long as it resolves to an array.
mixed|Expr $searchExpression Can be any valid expression.
mixed|Expr $start Optional. An integer, or a number that can be represented as integers (such as 2.0), that specifies the starting index position for the search. Can be any valid expression that resolves to a non-negative integral number.
mixed|Expr $end An integer, or a number that can be represented as integers (such as 2.0), that specifies the ending index position for the search. Can be any valid expression that resolves to a non-negative integral number.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/indexOfArray/

indexOfBytes(mixed|Expr $stringExpression, mixed|Expr $substringExpression, string|int|null $start = null, string|int|null $end = null)

Searches a string for an occurrence of a substring and returns the UTF-8 byte index (zero-based) of the first occurrence. If the substring is not found, returns -1.

Parameters

mixed|Expr $stringExpression Can be any valid expression as long as it resolves to a string.
mixed|Expr $substringExpression Can be any valid expression as long as it resolves to a string.
string|int|null $start An integral number that specifies the starting index position for the search. Can be any valid expression that resolves to a non-negative integral number.
string|int|null $end An integral number that specifies the ending index position for the search. Can be any valid expression that resolves to a non-negative integral number.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/indexOfBytes/

indexOfCP(mixed|Expr $stringExpression, mixed|Expr $substringExpression, string|int|null $start = null, string|int|null $end = null)

Searches a string for an occurrence of a substring and returns the UTF-8 code point index (zero-based) of the first occurrence. If the substring is not found, returns -1.

Parameters

mixed|Expr $stringExpression Can be any valid expression as long as it resolves to a string.
mixed|Expr $substringExpression Can be any valid expression as long as it resolves to a string.
string|int|null $start An integral number that specifies the starting index position for the search. Can be any valid expression that resolves to a non-negative integral number.
string|int|null $end An integral number that specifies the ending index position for the search. Can be any valid expression that resolves to a non-negative integral number.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/indexOfCP/

isArray(mixed|Expr $expression)

Determines if the operand is an array. Returns a boolean.

The can be any valid expression.

isoDayOfWeek(mixed|Expr $expression)

Returns the weekday number in ISO 8601 format, ranging from 1 (for Monday) to 7 (for Sunday).

The argument can be any expression as long as it resolves to a date.

isoWeek(mixed|Expr $expression)

Returns the week number in ISO 8601 format, ranging from 1 to 53.

Week numbers start at 1 with the week (Monday through Sunday) that contains the year’s first Thursday.

The argument can be any expression as long as it resolves to a date.

isoWeekYear(mixed|Expr $expression)

Returns the year number in ISO 8601 format.

The year starts with the Monday of week 1 (ISO 8601) and ends with the Sunday of the last week (ISO 8601).

The argument can be any expression as long as it resolves to a date.

last(mixed|Expr $expression)

Returns the value that results from applying an expression to the last document in a group of documents that share the same group by a field.

Only meaningful when documents are in a defined order.

let(mixed|Expr $vars, mixed|Expr $in)

Binds variables for use in the specified expression, and returns the result of the expression.

Parameters

mixed|Expr $vars Assignment block for the variables accessible in the in expression. To assign a variable, specify a string for the variable name and assign a valid expression for the value.
mixed|Expr $in The expression to evaluate.

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/let/

literal(mixed|Expr $value)

Returns a value without parsing. Use for values that the aggregation pipeline may interpret as an expression.

ln(mixed|Expr $number)

Calculates the natural logarithm ln (i.e loge) of a number and returns the result as a double.

The expression can be any valid expression as long as it resolves to a non-negative number.

log(mixed|Expr $number, mixed|Expr $base)

Calculates the log of a number in the specified base and returns the result as a double.

The expression can be any valid expression as long as it resolves to a non-negative number. The expression can be any valid expression as long as it resolves to a positive number greater than 1.

Parameters

mixed|Expr $number
mixed|Expr $base

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/log/

log10(mixed|Expr $number)

Calculates the log base 10 of a number and returns the result as a double.

The expression can be any valid expression as long as it resolves to a non-negative number.

lt(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is less than the second value.

false when the first value is greater than or equivalent to the second value.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/lt/

lte(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the first value is less than or equivalent to the second value.

false when the first value is greater than the second value.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/lte/

map(mixed|Expr $input, string $as, mixed|Expr $in)

Applies an expression to each item in an array and returns an array with the applied results.

Parameters

mixed|Expr $input An expression that resolves to an array.
string $as The variable name for the items in the input array. The in expression accesses each item in the input array by this variable.
mixed|Expr $in The expression to apply to each item in the input array. The expression accesses the item by its variable name.

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/map/

max(mixed|Expr $expression)

Returns the highest value that results from applying an expression to each document in a group of documents that share the same group by key.

meta(mixed|Expr $metaDataKeyword)

Returns the metadata associated with a document in a pipeline operations.

millisecond(mixed|Expr $expression)

Returns the millisecond portion of a date as an integer between 0 and 999.

The argument can be any expression as long as it resolves to a date.

min(mixed|Expr $expression)

Returns the lowest value that results from applying an expression to each document in a group of documents that share the same group by key.

minute(mixed|Expr $expression)

Returns the minute portion of a date as a number between 0 and 59.

The argument can be any expression as long as it resolves to a date.

mod(mixed|Expr $expression1, mixed|Expr $expression2)

Divides one number by another and returns the remainder. The first argument is divided by the second argument.

The arguments can be any valid expression as long as they resolve to numbers.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/mod/

month(mixed|Expr $expression)

Returns the month of a date as a number between 1 and 12.

The argument can be any expression as long as it resolves to a date.

multiply(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Multiplies numbers together and returns the result.

The arguments can be any valid expression as long as they resolve to numbers.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2
mixed|Expr ...$expressions Additional expressions

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/multiply/

ne(mixed|Expr $expression1, mixed|Expr $expression2)

Compares two values and returns: true when the values are not equivalent.

false when the values are equivalent.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/ne/

not(mixed|Expr $expression)

Evaluates a boolean and returns the opposite boolean value.

pow(mixed|Expr $number, mixed|Expr $exponent)

Raises a number to the specified exponent and returns the result.

The expression can be any valid expression as long as it resolves to a non-negative number. The expression can be any valid expression as long as it resolves to a number.

Parameters

mixed|Expr $number
mixed|Expr $exponent

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/pow/

push(mixed|Expr $expression)

Returns an array of all values that result from applying an expression to each document in a group of documents that share the same group by key.

range(mixed|Expr $start, mixed|Expr $end, mixed|Expr $step = 1)

Returns an array whose elements are a generated sequence of numbers.

$range generates the sequence from the specified starting number by successively incrementing the starting number by the specified step value up to but not including the end point.

Parameters

mixed|Expr $start An integer that specifies the start of the sequence. Can be any valid expression that resolves to an integer.
mixed|Expr $end An integer that specifies the exclusive upper limit of the sequence. Can be any valid expression that resolves to an integer.
mixed|Expr $step Optional. An integer that specifies the increment value. Can be any valid expression that resolves to a non-zero integer. Defaults to 1.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/range/

reduce(mixed|Expr $input, mixed|Expr $initialValue, mixed|Expr $in)

Applies an expression to each element in an array and combines them into a single value.

Parameters

mixed|Expr $input Can be any valid expression that resolves to an array.
mixed|Expr $initialValue The initial cumulative value set before in is applied to the first element of the input array.
mixed|Expr $in A valid expression that $reduce applies to each element in the input array in left-to-right order. Wrap the input value with $reverseArray to yield the equivalent of applying the combining expression from right-to-left.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/reduce/

reverseArray(mixed|Expr $expression)

Accepts an array expression as an argument and returns an array with the elements in reverse order.

second(mixed|Expr $expression)

Returns the second portion of a date as a number between 0 and 59, but can be 60 to account for leap seconds.

The argument can be any expression as long as it resolves to a date.

setDifference(mixed|Expr $expression1, mixed|Expr $expression2)

Takes two sets and returns an array containing the elements that only exist in the first set.

The arguments can be any valid expression as long as they each resolve to an array.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/setDifference/

setEquals(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Compares two or more arrays and returns true if they have the same distinct elements and false otherwise.

The arguments can be any valid expression as long as they each resolve to an array.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2
mixed|Expr ...$expressions Additional sets

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/setEquals/

setIntersection(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Takes two or more arrays and returns an array that contains the elements that appear in every input array.

The arguments can be any valid expression as long as they each resolve to an array.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2
mixed|Expr ...$expressions Additional sets

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/setIntersection/

setIsSubset(mixed|Expr $expression1, mixed|Expr $expression2)

Takes two arrays and returns true when the first array is a subset of the second, including when the first array equals the second array, and false otherwise.

The arguments can be any valid expression as long as they each resolve to an array.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/setIsSubset/

setUnion(mixed|Expr $expression1, mixed|Expr $expression2, mixed|Expr ...$expressions)

Takes two or more arrays and returns an array containing the elements that appear in any input array.

The arguments can be any valid expression as long as they each resolve to an array.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2
mixed|Expr ...$expressions Additional sets

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/setUnion/

size(mixed|Expr $expression)

Counts and returns the total the number of items in an array.

The argument can be any expression as long as it resolves to an array.

slice(mixed|Expr $array, mixed|Expr $n, mixed|Expr|null $position = null)

Returns a subset of an array.

Parameters

mixed|Expr $array
mixed|Expr $n
mixed|Expr|null $position

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/slice/

split(mixed|Expr $string, mixed|Expr $delimiter)

Divides a string into an array of substrings based on a delimiter.

$split removes the delimiter and returns the resulting substrings as elements of an array. If the delimiter is not found in the string, $split returns the original string as the only element of an array.

Parameters

mixed|Expr $string The string to be split. Can be any valid expression as long as it resolves to a string.
mixed|Expr $delimiter The delimiter to use when splitting the string expression. Can be any valid expression as long as it resolves to a string.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/split/

sqrt(mixed|Expr $expression)

Calculates the square root of a positive number and returns the result as a double.

The argument can be any valid expression as long as it resolves to a non-negative number.

stdDevPop(mixed|Expr $expression1, mixed|Expr ...$expressions)

Calculates the population standard deviation of the input values.

The arguments can be any expression as long as it resolves to an array.

Parameters

mixed|Expr $expression1
mixed|Expr ...$expressions Additional samples

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/stdDevPop/

stdDevSamp(mixed|Expr $expression1, mixed|Expr ...$expressions)

Calculates the sample standard deviation of the input values.

The arguments can be any expression as long as it resolves to an array.

Parameters

mixed|Expr $expression1
mixed|Expr ...$expressions Additional samples

See also

https://docs.mongodb.org/manual/reference/operator/aggregation/stdDevSamp/

strcasecmp(mixed|Expr $expression1, mixed|Expr $expression2)

Performs case-insensitive comparison of two strings. Returns 1 if first string is “greater than” the second string.

0 if the two strings are equal. -1 if the first string is “less than” the second string.

The arguments can be any valid expression as long as they resolve to strings.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/strcasecmp/

strLenBytes(mixed|Expr $string)

Returns the number of UTF-8 encoded bytes in the specified string.

strLenCP(mixed|Expr $string)

Returns the number of UTF-8 code points in the specified string.

substr(mixed|Expr $string, mixed|Expr $start, mixed|Expr $length)

Returns a substring of a string, starting at a specified index position and including the specified number of characters. The index is zero-based.

The arguments can be any valid expression as long as long as the first argument resolves to a string, and the second and third arguments resolve to integers.

Parameters

mixed|Expr $string
mixed|Expr $start
mixed|Expr $length

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/substr/

substrBytes(mixed|Expr $string, mixed|Expr $start, mixed|Expr $count)

Returns the substring of a string.

The substring starts with the character at the specified UTF-8 byte index (zero-based) in the string and continues for the number of bytes specified.

Parameters

mixed|Expr $string The string from which the substring will be extracted. Can be any valid expression as long as it resolves to a string.
mixed|Expr $start Indicates the starting point of the substring. Can be any valid expression as long as it resolves to a non-negative integer or number that can be represented as an integer.
mixed|Expr $count Can be any valid expression as long as it resolves to a non-negative integer or number that can be represented as an integer.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/substrBytes/

substrCP(mixed|Expr $string, mixed|Expr $start, mixed|Expr $count)

Returns the substring of a string.

The substring starts with the character at the specified UTF-8 code point (CP) index (zero-based) in the string for the number of code points specified.

Parameters

mixed|Expr $string The string from which the substring will be extracted. Can be any valid expression as long as it resolves to a string.
mixed|Expr $start Indicates the starting point of the substring. Can be any valid expression as long as it resolves to a non-negative integer or number that can be represented as an integer.
mixed|Expr $count Can be any valid expression as long as it resolves to a non-negative integer or number that can be represented as an integer.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/substrBytes/

subtract(mixed|Expr $expression1, mixed|Expr $expression2)

Subtracts two numbers to return the difference. The second argument is subtracted from the first argument.

The arguments can be any valid expression as long as they resolve to numbers and/or dates.

Parameters

mixed|Expr $expression1
mixed|Expr $expression2

See also

http://docs.mongodb.org/manual/reference/operator/aggregation/subtract/

sum(mixed|Expr $expression)

Calculates and returns the sum of all the numeric values that result from applying a specified expression to each document in a group of documents that share the same group by key. Ignores nun-numeric values.

toLower(mixed|Expr $expression)

Converts a string to lowercase, returning the result.

The argument can be any expression as long as it resolves to a string.

toUpper(mixed|Expr $expression)

Converts a string to uppercase, returning the result.

The argument can be any expression as long as it resolves to a string.

trunc(mixed|Expr $number)

Truncates a number to its integer.

The expression can be any valid expression as long as it resolves to a number.

type(mixed|Expr $expression)

Returns a string that specifies the BSON type of the argument.

The argument can be any valid expression.

week(mixed|Expr $expression)

Returns the week of the year for a date as a number between 0 and 53.

The argument can be any expression as long as it resolves to a date.

year(mixed|Expr $expression)

Returns the year portion of a date.

The argument can be any expression as long as it resolves to a date.

zip(mixed|Expr $inputs, bool|null $useLongestLength = null, mixed|Expr|null $defaults = null)

Transposes an array of input arrays so that the first element of the output array would be an array containing, the first element of the first input array, the first element of the second input array, etc.

Parameters

mixed|Expr $inputs An array of expressions that resolve to arrays. The elements of these input arrays combine to form the arrays of the output array.
bool|null $useLongestLength A boolean which specifies whether the length of the longest array determines the number of arrays in the output array.
mixed|Expr|null $defaults An array of default element values to use if the input arrays have different lengths. You must specify useLongestLength: true along with this field, or else $zip will return an error.

See also

https://docs.mongodb.com/manual/reference/operator/aggregation/zip/

switch()

Evaluates a series of case expressions. When it finds an expression which evaluates to true, $switch executes a specified expression and breaks out of the control flow.

To add statements, use the {@link case()}, {@link then()} and {@link default()} methods.

then(mixed|Expr $expression)

Adds a case statement for the current branch of the $switch operator.

Requires {@link case()} to be called first. The argument can be any valid expression.

Parameters

mixed|Expr $expression