PHP code example of alexanderthegreat96 / mongo-api-client

1. Go to this page and download the library: Download alexanderthegreat96/mongo-api-client library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

alexanderthegreat96 / mongo-api-client example snippets



use Alexanderthegreat96\MongoApiClient\MongoApiClient;

$client = new MongoApiClient(
    serverUrl: env('MONGO_API_URL', 'api.example.com'),
    serverPort: env('MONGO_API_PORT', 80),
    apiKey: env('MONGO_API_KEY', 'your-api-key'),
    scheme: env('MONGO_API_SCHEME', 'https'),
    autoConvertVals: true,
    timeoutSeconds: env('MONGO_API_TIMEOUT', 5.0)
);


use Alexanderthegreat96\MongoApiClient\MongoApiClient;

$client = new MongoApiClient(
   'api.example.com',
    80,
    'your-api-key',
    'https',
    true,
    5.0
);

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('age', '>=', 18, autoConvert: true)
    ->sortBy('name', MongoApiClient::ASC)
    ->page(1)
    ->perPage(20)
    ->all();

if ($response->isOk()) {
    $data = $response->getData();
    echo 'Found ' . count($data) . ' users:' . PHP_EOL;
    foreach ($data as $doc) {
        print_r($doc->getResult());
    }
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('name', '=', 'John Doe', autoConvert: false)
    ->first();

if ($response->isOk()) {
    $data = $response->getData();
    print_r($data->getResult() ?: 'No document found');
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->findById('507f1f77bcf86cd799439011');

if ($response->isOk()) {
    $data = $response->getData();
    print_r($data->getResult() ?: 'No document found');
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('age', '>=', 18, autoConvert: true)
    ->orWhere('status', '=', 'active', autoConvert: false)
    ->perPage(10)
    ->all();

if ($response->isOk()) {
    $data = $response->getData();
    echo 'Found ' . count($data) . ' users:' . PHP_EOL;
    foreach ($data as $doc) {
        print_r($doc->getResult());
    }
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('age', '>=', 18, autoConvert: true)
    ->groupBy('city')
    ->innerPage(1)
    ->innerPerPage(5)
    ->all();

if ($response->isOk()) {
    $data = $response->getData();
    if ($data->hasGrouped()) {
        foreach ($data as $group) {
            $innerPagination = $group->getInnerPagination();
            $records = $group->getRecords();
            $totalRecords = $group->getTotalRecords();
            $recordId = $group->getRecordId();
            echo 'Group ID: ' . ($recordId ?? 'unknown') . PHP_EOL;
            echo 'Group: ' . ($group->getData()['city'] ?? 'unknown') . PHP_EOL;
            echo 'Total Records: ' . ($totalRecords[0] ?? 0) . PHP_EOL;
            echo 'Page ' . $innerPagination->getCurrentPage() . '/' . $innerPagination->getTotalPages() . PHP_EOL;
            foreach ($records as $record) {
                echo ' - ' . print_r($record, true) . PHP_EOL;
            }
        }
    } else {
        echo 'No grouped data found' . PHP_EOL;
    }
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('age', '>=', 18, autoConvert: true)
    ->count();

if ($response->isOk()) {
    echo 'Total users: ' . $response->getCount() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->page(2)
    ->perPage(15)
    ->all();

if ($response->isOk()) {
    $pagination = $response->getPagination();
    echo 'Page ' . $pagination->getCurrentPage() . '/' . $pagination->getTotalPages() . PHP_EOL;
    echo 'Next Page: ' . $pagination->getNextPage() . PHP_EOL;
    echo 'Previous Page: ' . $pagination->getPrevPage() . PHP_EOL;
    echo 'Items per page: ' . $pagination->getPerPage() . PHP_EOL;
    $data = $response->getData();
    foreach ($data as $doc) {
        print_r($doc->getResult());
    }
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

// Custom query
$customQuery = ['stats.timePlayed' => ['$gte' => 10000]];
$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->executeCustomQuery($customQuery);

if ($response->isOk()) {
    $data = $response->getData();
    foreach ($data as $doc) {
        print_r($doc->getResult());
    }
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

// Aggregation query
$aggregateQuery = [
    ['$match' => ['stats.timePlayed' => ['$gte' => 10000]]],
    ['$group' => [
        '_id' => '$city',
        'totalTime' => ['$sum' => '$stats.timePlayed'],
        'avgTime' => ['$avg' => '$stats.timePlayed']
    ]],
    ['$sort' => ['totalTime' => -1]]
];
$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->executeCustomQuery($aggregateQuery, aggregate: true);

if ($response->isOk()) {
    $data = $response->getData();
    foreach ($data as $doc) {
        print_r($doc->getResult());
    }
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$payload = ['name' => 'John Doe', 'age' => 30];
$response = $client->fromDb('my_database')->fromCollection('users')->insert($payload);

if ($response->isOk()) {
    echo 'Inserted document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$payload = ['name' => 'John Doe', 'age' => 30];
$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('name', '=', 'John Doe', autoConvert: false)
    ->insertIf($payload);

if ($response->isOk()) {
    echo 'Inserted document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$payload = ['age' => 31];
$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('name', '=', 'John Doe', autoConvert: false)
    ->update($payload);

if ($response->isOk()) {
    echo 'Updated documents. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$payload = ['age' => 31];
$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->updateById('507f1f77bcf86cd799439011', $payload);

if ($response->isOk()) {
    echo 'Updated document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->where('age', '<', 18, autoConvert: true)
    ->delete();

if ($response->isOk()) {
    echo 'Deleted documents. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client
    ->fromDb('my_database')
    ->fromCollection('users')
    ->deleteById('507f1f77bcf86cd799439011');

if ($response->isOk()) {
    echo 'Deleted document. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$dbResponse = $client->listDatabases();
if ($dbResponse->isOk()) {
    print_r($dbResponse->getDatabases());
} else {
    echo 'Error: ' . $dbResponse->getError() . PHP_EOL;
}

$collectionResponse = $client->listTablesInDb('my_database');
if ($collectionResponse->isOk()) {
    print_r($collectionResponse->getTables());
} else {
    echo 'Error: ' . $collectionResponse->getError() . PHP_EOL;
}

$response = $client->dropDatabase('my_database');
if ($response->isOk()) {
    echo 'Dropped database. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client->dropCollection('my_database', 'users');
if ($response->isOk()) {
    echo 'Dropped collection. Message: ' . $response->getMessage() . PHP_EOL;
} else {
    echo 'Error: ' . $response->getError() . PHP_EOL;
}

$response = $client->fromDb('my_database')->fromCollection('users')->all();
if ($response->isNotOk()) {
    echo 'Request failed with code ' . $response->getCode() . ': ' . $response->getError() . PHP_EOL;
    if ($response->getCode() === 401) {
        echo 'Please check your API key.' . PHP_EOL;
    }
}