yii\mongodb\QueryBuilder::buildCompositeInCondition PHP Метод

buildCompositeInCondition() приватный Метод

private buildCompositeInCondition ( string $operator, array $columns, array $values ) : array
$operator string MongoDB the operator to use (`$in` OR `$nin`)
$columns array list of compare columns
$values array compare values in format: columnName => [values]
Результат array the generated Mongo condition.
    private function buildCompositeInCondition($operator, $columns, $values)
    {
        $result = [];
        $inValues = [];
        foreach ($values as $columnValues) {
            foreach ($columnValues as $column => $value) {
                if ($column == '_id') {
                    $value = $this->ensureMongoId($value);
                }
                $inValues[$column][] = $value;
            }
        }
        foreach ($columns as $column) {
            $columnInValues = array_values($inValues[$column]);
            if (count($columnInValues) === 1 && $operator === '$in') {
                $result[$column] = $columnInValues[0];
            } else {
                $result[$column][$operator] = $columnInValues;
            }
        }
        return $result;
    }